CImage 類別

CImage JPEG、GIF、BMP 和可攜式網路圖形 (PNG) 格式提供增強的點陣圖支援,包括載入和儲存影像。

重要

這個類別和其成員不能用於 Windows 執行階段執行的應用程式。

class CImage

Members

bwea7by5.collapse_all(zh-tw,VS.110).gif公用建構函式

名稱

描述

CImage::CImage

建構函式。

bwea7by5.collapse_all(zh-tw,VS.110).gif公用方法

名稱

描述

CImage::AlphaBlend

顯示具有透明或半透明的像素的點陣圖。

CImage::Attach

HBITMAPCImage 附加至物件。 可以搭配非 DIB 區段點陣圖或 DIB 區段點陣圖。

CImage::BitBlt

複製來源裝置內容的點陣圖加入至目前的裝置內容。

CImage::Create

建立 DIB 區段點陣圖並將其附加至先前 CImage 建構的物件。

CImage::CreateEx

建立 DIB 區段點陣圖 (利用不同的參數) 附加至先前建構的 CImage 物件。

CImage::Destroy

中斷連結 CImage 物件的點陣圖並終結該點陣圖。

CImage::Detach

中斷連結 CImage 物件的點陣圖。

CImage::Draw

複製來源矩形的點陣圖複製到目的矩形。 繪圖 自動縮放或壓縮點陣圖 (如果需要的話,以符合目的端矩形的維度和控制代碼和 alpha 著色和透明色彩。

CImage::GetBits

擷取指標點陣圖的實際像素值。

CImage::GetBPP

擷取每一像素位元數。

CImage::GetColorTable

從輸入範圍在色彩表中擷取紅色,綠色,藍色 (RGB) 色彩值。

CImage::GetDC

擷取目前點陣圖選取到裝置內容的。

CImage::GetExporterFilterString

尋找可用的影像格式和其說明。

CImage::GetHeight

擷取目前影像的高度 (以像素為單位)。

CImage::GetImporterFilterString

尋找可用的影像格式和其說明。

CImage::GetMaxColorTableEntries

在色彩表中擷取項目的最大數目。

CImage::GetPitch

擷取目前影像的字幅,以位元組為單位)。

CImage::GetPixel

擷取 xy.指定像素的色彩。

CImage::GetPixelAddress

擷取指定像素的位址。

CImage::GetTransparentColor

擷取透明色彩的位置在色彩表中。

CImage::GetWidth

擷取目前影像的寬度 (以像素為單位)。

CImage::IsDIBSection

判斷附加的點陣圖是否為 DIB 部分。

CImage::IsIndexed

表示點陣圖的色彩對應至索引的調色盤。

CImage::IsNull

表示來源點陣圖目前是否已載入。

CImage::IsTransparencySupported

指出應用程式是否支援透明點陣圖和在 Windows 2000 (含) 以後版本編譯。

CImage::Load

從指定的檔案載入影像。

CImage::LoadFromResource

從指定的資源載入影像。

CImage::MaskBlt

使用指定的遮罩和光柵作業 (Raster,合併色彩資料來源和目的點陣圖。

CImage::PlgBlt

在來源裝置內容執行從矩形的位元區塊傳輸至平行四邊形在目的裝置内容。

CImage::ReleaseDC

釋放所使用的 CImage::GetDC擷取裝置內容。

CImage::ReleaseGDIPlus

釋放 GDI+ 所使用的資源。 必須呼叫以釋放全域 CImage 物件所建立的資源。

CImage::Save

將影像,則指定的型別。 [儲存] 無法指定影像選項。

CImage::SetColorTable

在部分 DIB 的色彩表中設定項目的範圍中顯示為紅色,綠色,藍色) RGB 色彩值。

CImage::SetPixel

設定為在指定的座標轉換為指定的色彩。

CImage::SetPixelIndexed

設定為在指定的座標對應至色彩] 調色盤中的指定索引處的。

CImage::SetPixelRGB

設定為在指定的座標轉換為指定的紅色,綠色,藍色 (RGB) 值。

CImage::SetTransparentColor

設定會被視為透明的色彩索引。 只有在調色盤色彩可以是透明的。

CImage::StretchBlt

複製來源矩形的點陣圖的目的矩形,自動縮放或壓縮點陣圖至適合目的矩形的維度,如果需要。

CImage::TransparentBlt

複製具有透明色彩的點陣圖來源裝置內容加入至目前的裝置內容。

bwea7by5.collapse_all(zh-tw,VS.110).gif公用運算子

名稱

描述

CImage::operator HBITMAP

傳回視窗控制代碼 CImage 附加至物件。

備註

CImage 採用與裝置無關的點陣圖 (DIB) 部分的點陣圖,不過,您可以使用 建立CImage::Load 只 DIB 部分。 使用 連結,您可以將非 DIB 區段點陣圖儲存至 CImage 物件,另一方面,但您不可以使用下列方法, CImage 支援 DIB 部分點陣圖:

若要判斷已附加的點陣圖是否為 DIB 區段,請呼叫 IsDibSection.

注意事項注意事項

在 Visual Studio .NET 2003. 的Note ,這個類別會保持 CImage 物件數目的計數建立。當計數成為 0 中,函式 GdiplusShutdown 自動呼叫釋放 GDI+ 所使用的資源。這可確保正確直接或間接地終結 DLL 建立的所有 CImage 物件,並 GdiplusShutdown 沒有從 DllMain呼叫。

注意事項注意事項

使用全域 CImage 不建議在 DLL 的物件。如果您在 DLL 必須使用全域 CImage 物件,呼叫明確釋放的 CImage::ReleaseGDIPlus 資源使用由 GDI+。

CImage 無法被選取到新的 CDCCImage 建立該影像的 HDC 。 由於 HBITMAP 可以一次只能選取到一 HDCHBITMAPCImage 無法被選取到另一 HDC。 如果您需要 CDC,從 CImage 中擷取 HDC 並將它 CDC::FromHandle

範例

// Get a CDC for the image
CDC* pDC = CDC::FromHandle(m_myImage.GetDC());

// Use pDC here
pDC->Rectangle(0, 40, 100, 50);

m_myImage.ReleaseDC();

當您在 MFC 專案時使用 CImage ,請注意在專案中的哪些成員函式需要一個指標 CBitmap 物件。 如果您要使用這類的函式的 CImage ,就像 CMenu::AppendMenu,使用 CBitmap::FromHandle,將您的 CImageHBITMAP和使用傳回的 CBitmap*

void CMyDlg::OnRButtonDown(UINT nFlags, CPoint point)
{
   UNREFERENCED_PARAMETER(nFlags);

   CBitmap* pBitmap = CBitmap::FromHandle(m_myImage);
   m_pmenuPop->AppendMenu(0, ID_BMPCOMMAND, pBitmap);
   ClientToScreen(&point);
   m_pmenuPop->TrackPopupMenu(TPM_RIGHTBUTTON | TPM_LEFTALIGN, point.x, 
      point.y, this);
}

藉由 CImage,可以存取 DIB 區段的實際欄位的。 您可以使用物件 CImage 任何先前使用一個 Win32 HBITMAP 或 DIB 部分。

注意事項注意事項

下列 CImage 方法有使用的限制:

方法

限制

PlgBlt

只有 Windows NT 4.0 (含) 以後版本上執行。 在執行 Windows 95 /98 (含) 以後版本的應用程式將無法運作。

MaskBlt

只有 Windows NT 4.0 (含) 以後版本上執行。 在執行 Windows 95 /98 (含) 以後版本的應用程式將無法運作。

AlphaBlend

只有 Windows 2000、Windows 98 和更新系統搭配使用。

TransparentBlt

只有 Windows 2000、Windows 98 和更新系統搭配使用。

繪圖

支援以 Windows 2000、Windows 98 和只更新系統的透明度。

請參閱 與舊版作業系統的 CImage 限制 如需這些方法的限制的詳細資訊。

您可以使用從 MFC 或 ATL 中 CImage

注意事項注意事項

使用 CImage時,會在您建置專案,您必須定義 CString ,才能加入 atlimage.h之前。如果您的專案使用 ATL,而不使用 MFC,包含 atlstr.h ,才能加入 atlimage.h之前。如果您的專案使用 MFC (,如果它是一個 ATL 專案具有 MFC 支援),包含 afxstr.h ,才能加入 atlimage.h之前。

同樣地,,才能加入 atlimpl.cpp之前,您必須包含 atlimage.h 。若要輕鬆地達成這個目的,請 atlimage.h 包括在您的 stdafx.h。

需求

Header: atlimage.h

請參閱

參考

Device-Independent Bitmaps

CreateDIBSection

概念

MMXSwarm 範例

SimpleImage 範例

其他資源

ATL COM 元件桌面