CImage クラス
CImage は、BMP、GIF、JPEG、PNG (Portable Network Graphics (PNG) の形式のイメージの読み込みや保存などが強化されたビットマップ サポートを提供します。
重要 |
---|
このクラスおよびメンバーは、Windows のランタイムで実行するアプリケーションで使用することはできません。 |
class CImage
メンバー
パブリック コンストラクター
名前 |
説明 |
---|---|
コンストラクターです。 |
パブリック メソッド
名前 |
説明 |
---|---|
透明または半透明のピクセルがあるビットマップを表示します。 |
|
CImage のオブジェクトに HBITMAP をアタッチします。非 DIB セクションのビットマップまたは DIB セクションのビットマップを使用できます。 |
|
元のデバイス コンテキストからこの現在のデバイス コンテキストにビットマップをコピーします。 |
|
DIB セクションのビットマップを作成し、CImage の前に構築されたオブジェクトにアタッチします。 |
|
CImage の前に構築されたオブジェクトにビットマップ (DIB セクションの追加のパラメーターとともにアタッチし、を作成します。 |
|
CImage のオブジェクトからビットマップをデタッチし、ビットマップを破棄します。 |
|
CImage のオブジェクトからビットマップをデタッチします。 |
|
コピー先の四角形に元の四角形からビットマップをコピーします。[描画] は伸縮したり、描画先の四角形の寸法に収まるように必要に応じてビットマップを圧縮し、アルファ ブレンドと透明な色を処理します。 |
|
ビットマップの実際のピクセル値へのポインターを取得します。 |
|
ピクセルを取得します。 |
|
色テーブルのエントリの範囲から赤、緑、青 (RGB) のカラー値を取得します。 |
|
現在のビットマップが選択されたデバイス コンテキストを取得します。 |
|
使用可能なイメージ形式と説明を検索します。 |
|
ピクセルの現在のイメージの高さを取得します。 |
|
使用可能なイメージ形式と説明を検索します。 |
|
色テーブルのエントリの最大数を取得します。 |
|
バイトの現在のイメージの距離を取得します。 |
|
x と y.で指定したピクセルの色を取得します。 |
|
特定のピクセルのアドレスを取得します。 |
|
色テーブルの透明色の位置を取得します。 |
|
ピクセルの現在のイメージの幅を取得します。 |
|
アタッチされているビットマップの DIB セクションであるかどうかを判定します。 |
|
ビットマップの色がパレット インデックスにマップされていることを示します。 |
|
ソース ビットマップが現在読み込まれている示します。 |
|
アプリケーションが透明なビットマップをサポートし、Windows 2000 以降のコンパイルするかどうか。 |
|
指定したファイルからイメージを読み込みます。 |
|
指定したリソースからイメージを読み込みます。 |
|
指定したマスクとラスター オペレーションを使用して元とコピー先のビットマップの色データを結合します。 |
|
コピー先のデバイス コンテキストの平行四辺形に元のデバイス コンテキストで四角形のビット ブロック転送を行います。 |
|
CImage::GetDCで取得されたデバイス コンテキストを解放します。 |
|
GDI+ によって使用されるリソースを解放します。CImage のグローバル オブジェクトで作成されたリソースを解放するために呼び出す必要があります。 |
|
イメージをとして型指定されます。上書き保存 は、イメージのオプションを指定することはできません。 |
|
DIB セクションのカラー テーブルのエントリの範囲の赤、緑、青) の RGB カラー値を設定します。 |
|
指定した色に指定した座標をピクセル単位で設定します。 |
|
パレットで色の指定したインデックスに指定した座標をピクセル単位で設定します。 |
|
(RGB) で指定された赤、緑、青の値に指定した座標をピクセル単位で設定します。 |
|
色のインデックスを扱う透過的として設定します。パレットの 1 色のみ透過的になります。 |
|
ビットマップを描画先の四角形に合うように伸縮または圧縮する先の四角形と元の四角形からビットマップを必要に応じてコピーします。 |
|
元のデバイス コンテキストからこの現在のデバイス コンテキストに透明な色のビットマップをコピーします。 |
パブリック演算子
名前 |
説明 |
---|---|
オブジェクトにアタッチされている CImage のウィンドウ ハンドルを返します。 |
解説
CImage は、デバイスに依存しないビットマップの (DIB) のセクションまたは、ではないビットマップを使用します; ただし、DIB セクションだけで [作成] か CImage::Load を使用できます。[アタッチ]を使用して CImage のオブジェクトに、DIB セクションのビットマップをアタッチできますが、その場合は DIB セクションのビットマップだけをサポートする CImage の次のメソッドを使用できません:
アタッチされているビットマップの DIB セクションであるかどうかを確認するには、IsDibSection**.**を呼び出します。
[!メモ]
Visual Studio .NET 2003 のNote は、このクラス CImage のオブジェクトの数を作成しておきます。カウントが 0 に移動するたびに GDI+ によって使用されるリソースを解放するための関数 GdiplusShutdown は自動的に呼び出されます。これは、DLL によって直接または間接的に作成される CImage のオブジェクトは、常に適切に破棄されていること、および GdiplusShutdown が DllMainから呼び出されていないことを確認します。
[!メモ]
DLL の CImage のグローバル オブジェクトはお勧めしません。DLL で CImage のグローバル オブジェクトを使用する必要がある場合、明示的に GDI+ が使用していたリソースを解放する呼び出し CImage::ReleaseGDIPlus。
CImage は、新しい CDCに選択することはできません。CImage、イメージの独自の HDC を作成します。HBITMAP が 1 HDC に一度に選択できないため CImage に関連付けられている HBITMAP は別の HDCに選択することはできません。CDCが必要な場合は、HDC を CImage から取得し、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 以降だけを使用します。/98 Windows 95 以降で実行されるアプリケーションに Per Request Impersonation Does Not Work |
|
Windows NT 4.0 以降だけを使用します。/98 Windows 95 以降で実行されるアプリケーションに Per Request Impersonation Does Not Work |
|
Windows 2000、Windows 98 以降のシステムのみを使用します。 |
|
Windows 2000、Windows 98 以降のシステムのみを使用します。 |
|
Windows 2000、Windows 98 以降のシステムのみの透過性をサポートします。 |
これらのメソッドの制限に関する詳細については 以前のオペレーティング システムに CImage の制限 を参照してください。
MFC または ATL の CImage を使用できます。
[!メモ]
CImageを使用してプロジェクトを作成すると、atlimage.hをインクルードする前に CString を定義する必要があります。プロジェクトが MFC なしでは、ATL を使用している場合は、atlimage.hをインクルードする前に atlstr.h を含めます。これは MFC サポートを使用して ATL プロジェクトを使用している場合は、プロジェクトが MFC (または)、atlimage.hをインクルードする前に afxstr.h を含めます。
同様に atlimpl.cppをインクルードする前に、atlimage.h を含める必要があります。これを簡単に実現するには、の stdafx.hに atlimage.h を含めます。
必要条件
Header: atlimage.h