CImage 類別
在CImage JPEG、GIF、BMP 和可攜式網路圖形 (PNG) 格式提供增強的點陣圖支援,包括載入和儲存影像。
重要
這個類別和其成員不能用於 Windows 執行階段執行的應用程式。
class CImage
Members
公用建構函式
名稱 |
描述 |
---|---|
建構函式。 |
公用方法
名稱 |
描述 |
---|---|
顯示具有透明或半透明的像素的點陣圖。 |
|
HBITMAPCImage 附加至物件。 可以搭配非 DIB 區段點陣圖或 DIB 區段點陣圖。 |
|
複製來源裝置內容的點陣圖加入至目前的裝置內容。 |
|
建立 DIB 區段點陣圖並將其附加至先前 CImage 建構的物件。 |
|
建立 DIB 區段點陣圖 (利用不同的參數) 附加至先前建構的 CImage 物件。 |
|
中斷連結 CImage 物件的點陣圖並終結該點陣圖。 |
|
中斷連結 CImage 物件的點陣圖。 |
|
複製來源矩形的點陣圖複製到目的矩形。 繪圖 自動縮放或壓縮點陣圖 (如果需要的話,以符合目的端矩形的維度和控制代碼和 alpha 著色和透明色彩。 |
|
擷取指標點陣圖的實際像素值。 |
|
擷取每一像素位元數。 |
|
從輸入範圍在色彩表中擷取紅色,綠色,藍色 (RGB) 色彩值。 |
|
擷取目前點陣圖選取到裝置內容的。 |
|
尋找可用的影像格式和其說明。 |
|
擷取目前影像的高度 (以像素為單位)。 |
|
尋找可用的影像格式和其說明。 |
|
在色彩表中擷取項目的最大數目。 |
|
擷取目前影像的字幅,以位元組為單位)。 |
|
擷取 x 和 y.指定像素的色彩。 |
|
擷取指定像素的位址。 |
|
擷取透明色彩的位置在色彩表中。 |
|
擷取目前影像的寬度 (以像素為單位)。 |
|
判斷附加的點陣圖是否為 DIB 部分。 |
|
表示點陣圖的色彩對應至索引的調色盤。 |
|
表示來源點陣圖目前是否已載入。 |
|
指出應用程式是否支援透明點陣圖和在 Windows 2000 (含) 以後版本編譯。 |
|
從指定的檔案載入影像。 |
|
從指定的資源載入影像。 |
|
使用指定的遮罩和光柵作業 (Raster,合併色彩資料來源和目的點陣圖。 |
|
在來源裝置內容執行從矩形的位元區塊傳輸至平行四邊形在目的裝置内容。 |
|
釋放所使用的 CImage::GetDC擷取裝置內容。 |
|
釋放 GDI+ 所使用的資源。 必須呼叫以釋放全域 CImage 物件所建立的資源。 |
|
將影像,則指定的型別。 [儲存] 無法指定影像選項。 |
|
在部分 DIB 的色彩表中設定項目的範圍中顯示為紅色,綠色,藍色) RGB 色彩值。 |
|
設定為在指定的座標轉換為指定的色彩。 |
|
設定為在指定的座標對應至色彩] 調色盤中的指定索引處的。 |
|
設定為在指定的座標轉換為指定的紅色,綠色,藍色 (RGB) 值。 |
|
設定會被視為透明的色彩索引。 只有在調色盤色彩可以是透明的。 |
|
複製來源矩形的點陣圖的目的矩形,自動縮放或壓縮點陣圖至適合目的矩形的維度,如果需要。 |
|
複製具有透明色彩的點陣圖來源裝置內容加入至目前的裝置內容。 |
公用運算子
名稱 |
描述 |
---|---|
傳回視窗控制代碼 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 無法被選取到新的 CDC。 CImage 建立該影像的 HDC 。 由於 HBITMAP 可以一次只能選取到一 HDC , HBITMAP 與 CImage 無法被選取到另一 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 方法有使用的限制: |
方法 |
限制 |
---|---|
只有 Windows NT 4.0 (含) 以後版本上執行。 在執行 Windows 95 /98 (含) 以後版本的應用程式將無法運作。 |
|
只有 Windows NT 4.0 (含) 以後版本上執行。 在執行 Windows 95 /98 (含) 以後版本的應用程式將無法運作。 |
|
只有 Windows 2000、Windows 98 和更新系統搭配使用。 |
|
只有 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