CImage
クラス
CImage
では、JPEG、GIF、BMP、およびポータブル ネットワーク グラフィックス (PNG) 形式の画像を読み込んで保存する機能など、強化されたビットマップのサポートが提供されます。
重要
このクラスとそのメンバーは、Windows ランタイムで実行するアプリケーションで使用することはできません。
構文
class CImage
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CImage::CImage |
コンストラクター。 |
パブリック メソッド
名前 | 説明 |
---|---|
CImage::AlphaBlend |
ピクセルが透明または半透明のビットマップを表示します。 |
CImage::Attach |
HBITMAP を CImage オブジェクトにアタッチします。 非 DIB セクションのビットマップまたは DIB セクションのビットマップで使用できます。 |
CImage::BitBlt |
ソース デバイス コンテキストからこの現在のデバイス コンテキストにビットマップをコピーします。 |
CImage::Create |
DIB セクション ビットマップを作成し、以前に作成した CImage オブジェクトにアタッチします。 |
CImage::CreateEx |
DIB セクション ビットマップを (パラメーターを追加して) 作成し、以前に作成した CImage オブジェクトにアタッチします。 |
CImage::Destroy |
CImage オブジェクトからビットマップをデタッチして、ビットマップを破棄します。 |
CImage::Detach |
CImage オブジェクトからビットマップをデタッチします。 |
CImage::Draw |
コピー元の四角形からコピー先の四角形にビットマップをコピーします。 Draw は、必要に応じて、コピー先の四角形の寸法に合わせてビットマップを拡大または縮小し、アルファ ブレンドと透明色を処理します。 |
CImage::GetBits |
ビットマップの実際のピクセル値へのポインターを取得します。 |
CImage::GetBPP |
ピクセルあたりのビット数を取得します。 |
CImage::GetColorTable |
カラー テーブル内のエントリの範囲から赤、緑、青 (RGB) の色の値を取得します。 |
CImage::GetDC |
現在のビットマップが選択されているデバイス コンテキストを取得します。 |
CImage::GetExporterFilterString |
使用可能な画像形式とその説明を検索します。 |
CImage::GetHeight |
現在の画像の高さをピクセル単位で取得します。 |
CImage::GetImporterFilterString |
使用可能な画像形式とその説明を検索します。 |
CImage::GetMaxColorTableEntries |
カラー テーブルのエントリの最大数を取得します。 |
CImage::GetPitch |
現在の画像のピッチをバイト単位で取得します。 |
CImage::GetPixel |
x と y で指定されたピクセルの色を取得します。 |
CImage::GetPixelAddress |
指定したピクセルのアドレスを取得します。 |
CImage::GetTransparentColor |
カラー テーブルでの透明な色の位置を取得します。 |
CImage::GetWidth |
現在の画像の幅をピクセル単位で取得します。 |
CImage::IsDIBSection |
アタッチされたビットマップが DIB セクションかどうかを判断します。 |
CImage::IsIndexed |
ビットマップの色がインデックス付きパレットにマップされていることを示します。 |
CImage::IsNull |
ソース ビットマップが現在読み込まれているかどうかを示します。 |
CImage::IsTransparencySupported |
アプリケーションで透明なビットマップがサポートされているかどうかを示します。 |
CImage::Load |
指定したファイルから画像を読み込みます。 |
CImage::LoadFromResource |
指定したリソースから画像を読み込みます。 |
CImage::MaskBlt |
指定したマスクとラスター操作を使用して、ソースとターゲットのビットマップのカラー データを結合します。 |
CImage::PlgBlt |
ソース デバイス コンテキストの四角形からターゲット デバイス コンテキストの平行四辺形へのビット ブロック転送を実行します。 |
CImage::ReleaseDC |
CImage::GetDC で取得されたデバイス コンテキストを解放します。 |
CImage::ReleaseGDIPlus |
GDI+ によって使用されているリソースを解放します。 グローバル CImage オブジェクトによって作成されたリソースを解放するために、呼び出す必要があります。 |
CImage::Save |
指定した種類として画像を保存します。 Save では、画像オプションを指定できません。 |
CImage::SetColorTable |
DIB セクションのカラー テーブル内のエントリの範囲内の赤、緑、青 (RGB) の色の値を設定します。 |
CImage::SetPixel |
指定した座標のピクセルを、指定した色に設定します。 |
CImage::SetPixelIndexed |
指定した座標のピクセルを、パレットの指定したインデックスの色に設定します。 |
CImage::SetPixelRGB |
指定した座標のピクセルを、指定した赤、緑、青 (RGB) の値に設定します。 |
CImage::SetTransparentColor |
色のインデックスを透明として扱うように設定します。 透明にできるのはパレット内の 1 つの色のみです。 |
CImage::StretchBlt |
コピー元の四角形から、必要に応じてコピー先の四角形に合うようにビットマップを拡大または縮小してコピーします。 |
CImage::TransparentBlt |
ソース デバイス コンテキストからこの現在のデバイス コンテキストに透明な色のビットマップをコピーします。 |
パブリック演算子
名前 | 説明 |
---|---|
CImage::operator HBITMAP |
CImage オブジェクトにアタッチされている Windows ハンドルを返します。 |
解説
CImage
は、デバイスに依存しないビットマップ (DIB) セクションのビットマップでも、そうではないビットマップでも受け取ります。ただし、Create
または CImage::Load
は DIB セクションでのみ使用できます。 Attach
を使用して非 DIB セクションのビットマップを CImage
オブジェクトにアタッチできますが、その場合は、DIB セクションのビットマップのみをサポートする次の CImage
メソッドを使用できません。
アタッチされたビットマップが DIB セクションかどうかを確認するには、IsDibSection
を呼び出します。
Note
Visual Studio .NET 2003 では、作成された CImage
オブジェクトの数がこのクラスに保持されます。 カウントが 0 になるたびに、GdiplusShutdown
関数が自動的に呼び出され、GDI+ によって使用されたリソースが解放されます。 これにより、DLL によって直接または間接に作成された CImage
オブジェクトが常に適切に破棄され、GdiplusShutdown
が DllMain
から呼び出されないことが保証されます。
Note
DLL でグローバル CImage
オブジェクトを使用することは推奨されません。 DLL でグローバル CImage
オブジェクトを使用する必要がある場合は、CImage::ReleaseGDIPlus
を呼び出して、GDI+ によって使用されたリソースを明示的に解放します。
新しい CDC
で CImage
を選択することはできません。 CImage
によって、イメージ用に独自の HDC
が作成されます。 HBITMAP
は一度に 1 つの HDC
にしか選択できないので、CImage
に関連付けられている HBITMAP
を別の 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
オブジェクトへのポインターを渡す必要があるものに注意してください。 CMenu::AppendMenu
など、このような関数でCImage
を使用する場合は、CBitmap::FromHandle
を使用し、CImage
HBITMAP
を渡して、返された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 セクションの実際のビットにアクセスできます。 以前に Win32 HBITMAP
または DIB セクションを使用していた任意の場所で、CImage
オブジェクトを使用できます。
CImage
は、MFC または ATL から使用できます。
Note
CImage
を使用してプロジェクトを作成するときは、atlimage.h
をインクルードする前に CString
を定義する必要があります。 プロジェクトで MFC を使用せずに ATL を使用する場合は、atlimage.h
をインクルードする前に atlstr.h
をインクルードします。 プロジェクトで MFC を使用する場合 (または MFC をサポートする ATL プロジェクトの場合) は、atlimage.h
をインクルードする前に afxstr.h
をインクルードします。
同様に、atlimpl.cpp
をインクルードする前に atlimage.h
をインクルードする必要があります。 これを簡単に行うには、pch.h
(Visual Studio 2017 以前では stdafx.h
) に atlimage.h
をインクルードします。
要件
ヘッダー: atlimage.h
CImage::AlphaBlend
ピクセルが透明または半透明のビットマップを表示します。
BOOL AlphaBlend(
HDC hDestDC,
int xDest,
int yDest,
BYTE bSrcAlpha = 0xff,
BYTE bBlendOp = AC_SRC_OVER) const throw();
BOOL AlphaBlend(
HDC hDestDC,
const POINT& pointDest,
BYTE bSrcAlpha = 0xff,
BYTE bBlendOp = AC_SRC_OVER) const throw();
BOOL AlphaBlend(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
int xSrc,
int ySrc,
int nSrcWidth,
int nSrcHeight,
BYTE bSrcAlpha = 0xff,
BYTE bBlendOp = AC_SRC_OVER);
BOOL AlphaBlend(
HDC hDestDC,
const RECT& rectDest,
const RECT& rectSrc,
BYTE bSrcAlpha = 0xff,
BYTE bBlendOp = AC_SRC_OVER);
パラメーター
hDestDC
ターゲット デバイス コンテキストのハンドル。
xDest
ターゲットの四角形の左上隅の x 座標 (論理単位)。
yDest
ターゲットの四角形の左上隅の y 座標 (論理単位)。
bSrcAlpha
ソース ビットマップ全体で使用されるアルファ透明度の値。 既定の 0xff (255) では、画像が不透明であり、ピクセル単位のアルファ値のみを使用するものと想定されています。
bBlendOp
ソースとターゲットのビットマップのアルファ ブレンド関数、ソース ビットマップ全体に適用されるグローバル アルファ値、およびソース ビットマップの形式情報。 現在、ソースとターゲットのブレンド関数は AC_SRC_OVER
に制限されています。
pointDest
ターゲットの四角形の左上隅を論理単位で示す POINT
構造体への参照。
nDestWidth
ターゲットの四角形の幅 (論理単位)。
nDestHeight
ターゲットの四角形の高さ (論理単位)。
xSrc
ソースの四角形の左上隅の論理 x 座標。
ySrc
ソースの四角形の左上隅の論理 y 座標。
nSrcWidth
ソースの四角形の幅 (論理単位)。
nSrcHeight
ソースの四角形の高さ (論理単位)。
rectDest
ターゲットを示す RECT
構造体への参照。
rectSrc
ソースを示す RECT
構造体への参照。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
アルファ ブレンド ビットマップは、ピクセル単位での色のブレンドをサポートします。
bBlendOp
が既定値の AC_SRC_OVER
に設定されている場合、ソース ビットマップは、ソース ピクセルのアルファ値に基づいて、ターゲット ビットマップの上に配置されます。
CImage::Attach
hBitmap
を CImage
オブジェクトにアタッチします。
void Attach(HBITMAP hBitmap, DIBOrientation eOrientation = DIBOR_DEFAULT) throw();
パラメーター
hBitmap
HBITMAP
へのハンドル。
eOrientation
ビットマップの向きを指定します。 以下のいずれかを指定できます。
DIBOR_DEFAULT
ビットマップの向きは、オペレーティング システムによって決まります。DIBOR_BOTTOMUP
ビットマップの行は逆の順序です。 これにより、CImage::GetBits
ではビットマップ バッファーの末尾に付いポインターが返され、CImage::GetPitch
では負の数値が返されます。DIBOR_TOPDOWN
ビットマップの行は上から下の順序です。 これにより、CImage::GetBits
ではビットマップ バッファーの最初のバイトへのポインターが返され、CImage::GetPitch
では正の数値が返されます。
解説
ビットマップは、非 DIB セクションのビットマップでも DIB セクションのビットマップでもかまいません。 DIB セクションのビットマップでのみ使用できるメソッドの一覧については、IsDIBSection
に関する説明を参照してください。
CImage::BitBlt
ソース デバイス コンテキストからこの現在のデバイス コンテキストにビットマップをコピーします。
BOOL BitBlt(
HDC hDestDC,
int xDest,
int yDest,
DWORD dwROP = SRCCOPY) const throw();
BOOL BitBlt(
HDC hDestDC,
const POINT& pointDest,
DWORD dwROP = SRCCOPY) const throw();
BOOL BitBlt(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
int xSrc,
int ySrc,
DWORD dwROP = SRCCOPY) const throw();
BOOL BitBlt(
HDC hDestDC,
const RECT& rectDest,
const POINT& pointSrc,
DWORD dwROP = SRCCOPY) const throw();
パラメーター
hDestDC
コピー先 HDC
。
xDest
ターゲットの四角形の左上隅の論理 x 座標。
yDest
ターゲットの四角形の左上隅の論理 y 座標。
dwROP
実行するラスター操作。 ラスター操作コードでは、ソースのビット、ターゲット、ターゲットを作成するためのパターン (現在選択されているブラシで定義されているもの) を組み合わせる方法を正確に定義します。 他のラスター操作コードとその説明の一覧については、Windows SDK の BitBlt
に関する記事を参照してください。
pointDest
ターゲットの四角形の左上隅を示す POINT
構造体。
nDestWidth
ターゲットの四角形の幅 (論理単位)。
nDestHeight
ターゲットの四角形の高さ (論理単位)。
xSrc
ソースの四角形の左上隅の論理 x 座標。
ySrc
ソースの四角形の左上隅の論理 y 座標。
rectDest
ターゲットの四角形を示す RECT
構造体。
pointSrc
ソースの四角形の左上隅を示す POINT
構造体。
戻り値
成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
詳細については、Windows SDK の BitBlt
に関する記事を参照してください。
CImage::CImage
CImage
オブジェクトを構築します。
CImage() throw();
解説
オブジェクトを作成したら、Create
、Load
、LoadFromResource
、または Attach
を呼び出して、ビットマップをオブジェクトにアタッチします。
注 Visual Studio では、作成された CImage
オブジェクトの数がこのクラスに保持されます。 カウントが 0 になるたびに、GdiplusShutdown
関数が自動的に呼び出され、GDI+ によって使用されたリソースが解放されます。 これにより、DLL によって直接または間接に作成された CImage
オブジェクトが常に適切に破棄され、GdiplusShutdown
が DllMain から呼び出されないことが保証されます。
DLL でグローバル CImage
オブジェクトを使用することは推奨されません。 DLL でグローバル CImage
オブジェクトを使用する必要がある場合は、CImage::ReleaseGDIPlus
を呼び出して、GDI+ によって使用されたリソースを明示的に解放します。
CImage::Create
CImage
ビットマップを作成し、以前に作成した CImage
オブジェクトにアタッチします。
BOOL Create(
int nWidth,
int nHeight,
int nBPP,
DWORD dwFlags = 0) throw();
パラメーター
nWidth
CImage
ビットマップの幅 (ピクセル単位)。
nHeight
CImage
ビットマップの高さ (ピクセル単位)。 nHeight
が正の場合、ビットマップはボトムアップ DIB であり、原点は左下隅です。 nHeight
が負の場合、ビットマップはトップダウン DIB であり、原点は左上隅です。
nBPP
ビットマップのピクセルあたりのビット数。 通常は 4、8、16、24、または 32 です。 白黒ビットマップまたはマスクの場合は 1 を指定できます。
dwFlags
ビットマップ オブジェクトにアルファ チャネルがあるかどうかを指定します。 次の値を 0 個以上組み合わせて指定できます。
createAlphaChannel
nBPP
が 32 で、eCompression
がBI_RGB
の場合にのみ使用できます。 指定した場合、作成される画像は、ピクセルごとにアルファ (透明度) 値を持ち、各ピクセルの 4 番目のバイトに格納されます (アルファのない 32 ビット画像では使用されません)。CImage::AlphaBlend
を呼び出すと、このアルファ チャネルが自動的に使用されます。
Note
CImage::Draw
を呼び出すと、アルファ チャネルのある画像は自動的にターゲットにアルファ ブレンドされます。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
CImage::CreateEx
CImage
ビットマップを作成し、以前に作成した CImage
オブジェクトにアタッチします。
BOOL CreateEx(
int nWidth,
int nHeight,
int nBPP,
DWORD eCompression,
const DWORD* pdwBitmasks = NULL,
DWORD dwFlags = 0) throw();
パラメーター
nWidth
CImage
ビットマップの幅 (ピクセル単位)。
nHeight
CImage
ビットマップの高さ (ピクセル単位)。 nHeight
が正の場合、ビットマップはボトムアップ DIB であり、原点は左下隅です。 nHeight
が負の場合、ビットマップはトップダウン DIB であり、原点は左上隅です。
nBPP
ビットマップのピクセルあたりのビット数。 通常は 4、8、16、24、または 32 です。 白黒ビットマップまたはマスクの場合は 1 を指定できます。
eCompression
圧縮されたボトムアップ ビットマップの圧縮の種類を指定します (トップダウン DIB は圧縮できません)。 値は、次のいずれかです。
BI_RGB
形式は圧縮されません。CImage::CreateEx
を呼び出すときにこの値を指定することは、CImage::Create
を呼び出すのと同じです。BI_BITFIELDS
形式は圧縮されず、カラー テーブルは、各ピクセルのそれぞれ赤、緑、青の各成分を指定する 3 つのDWORD
カラー マスクで構成されます。 これは、16 および 32 bpp のビットマップで使用する場合に有効です。
pdwBitfields
eCompression
が BI_BITFIELDS
に設定されている場合にのみ使用されます。それ以外の場合は、NULL
でなければなりません。 3 つの DWORD
ビットマスクの配列へのポインター。それぞれ、各ピクセルのどのビットが、色の赤、緑、青の成分に使用されるかを指定します。 ビットフィールドに対する制限については、Windows SDK の BITMAPINFOHEADER
に関する記事を参照してください。
dwFlags
ビットマップ オブジェクトにアルファ チャネルがあるかどうかを指定します。 次の値を 0 個以上組み合わせて指定できます。
createAlphaChannel
nBPP
が 32 で、eCompression
がBI_RGB
の場合にのみ使用できます。 指定した場合、作成される画像は、ピクセルごとにアルファ (透明度) 値を持ち、各ピクセルの 4 番目のバイトに格納されます (アルファのない 32 ビット画像では使用されません)。CImage::AlphaBlend
を呼び出すと、このアルファ チャネルが自動的に使用されます。Note
CImage::Draw
を呼び出すと、アルファ チャネルのある画像は自動的にターゲットにアルファ ブレンドされます。
戻り値
正常終了した場合は、TRUE
。 それ以外の場合は FALSE
。
例
次の例では、各ピクセルをエンコードするために 16 ビットを使用して、100x100 ピクセルのビットマップを作成します。 特定の 16 ビット ピクセルでは、ビット 0-3 で赤成分、ビット 4-7 で緑、ビット 8-11 で青がエンコードされています。 残りの 4 ビットは使用されません。
DWORD adwBitmasks[3] = { 0x0000000f, 0x000000f0, 0x00000f00 };
m_myImage.CreateEx(100, 100, 16, BI_BITFIELDS, adwBitmasks, 0);
CImage::Destroy
CImage
オブジェクトからビットマップをデタッチして、ビットマップを破棄します。
void Destroy() throw();
CImage::Detach
CImage
オブジェクトからビットマップをデタッチします。
HBITMAP Detach() throw();
戻り値
デタッチされたビットマップへのハンドル。ビットマップがアタッチされていない場合は NULL
。
CImage::Draw
ソース デバイス コンテキストから現在のデバイス コンテキストにビットマップをコピーします。
BOOL Draw(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
int xSrc,
int ySrc,
int nSrcWidth,
int nSrcHeight) const throw();
BOOL Draw(
HDC hDestDC,
const RECT& rectDest,
const RECT& rectSrc) const throw();
BOOL Draw(
HDC hDestDC,
int xDest,
int yDest) const throw();
BOOL Draw(
HDC hDestDC,
const POINT& pointDest) const throw();
BOOL Draw(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight) const throw();
BOOL Draw(
HDC hDestDC,
const RECT& rectDest) const throw();
パラメーター
hDestDC
ターゲット デバイス コンテキストのハンドル。
xDest
ターゲットの四角形の左上隅の x 座標 (論理単位)。
yDest
ターゲットの四角形の左上隅の y 座標 (論理単位)。
nDestWidth
ターゲットの四角形の幅 (論理単位)。
nDestHeight
ターゲットの四角形の高さ (論理単位)。
xSrc
ソースの四角形の左上隅の x 座標 (論理単位)。
ySrc
ソースの四角形の左上隅の y 座標 (論理単位)。
nSrcWidth
ソースの四角形の幅 (論理単位)。
nSrcHeight
ソースの四角形の高さ (論理単位)。
rectDest
ターゲットを示す RECT
構造体への参照。
rectSrc
ソースを示す RECT
構造体への参照。
pointDest
ターゲットの四角形の左上隅を論理単位で示す POINT
構造体への参照。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
画像に透明色またはアルファ チャネルが含まれていない場合、Draw
は StretchBlt
と同じ操作を実行します。 その場合、Draw
は、必要に応じて、TransparentBlt
または AlphaBlend
のいずれかと同じ操作を実行します。
ソースの四角形を指定しないバージョンの Draw
では、ソース画像全体が既定値になります。 ターゲットの四角形のサイズを指定しないバージョンの Draw
では、ソース画像のサイズが既定値になり、拡大または縮小は行われません。
CImage::GetBits
ビットマップ内の特定のピクセルの実際のビット値へのポインターを取得します。
void* GetBits() throw();
戻り値
ビットマップ バッファーへのポインター。 ビットマップがボトムアップ DIB の場合、ポインターはバッファーの末尾付近を指します。 ビットマップがトップダウン DIB の場合、ポインターはバッファーの最初のバイトを指します。
解説
GetPitch
によって返される値と共にこのポインターを使用すると、画像内の個々のピクセルを見つけて変更できます。
Note
このメソッドは、DIB セクションのビットマップのみをサポートします。そのため、DIB セクションのピクセルと同じ方法で、CImage
オブジェクトのピクセルにアクセスします。 返されるポインターは、位置 (0, 0) のピクセルを指します。
CImage::GetBPP
ピクセルあたりのビット数の値を取得します。
int GetBPP() const throw();
戻り値
ピクセルあたりのビット数の値。
解説
この値によって、各ピクセルを定義するビットの数と、ビットマップでの色の最大数が決まります。
ピクセルあたりのビット数は、通常、1、4、8、16、24、または 32 です。 この値の詳細については、Windows SDK で BITMAPINFOHEADER
の biBitCount
メンバーに関する記事を参照してください。
CImage::GetColorTable
DIB セクションのパレット内のエントリの範囲から、赤、緑、青 (RGB) の色の値を取得します。
void GetColorTable(
UINT iFirstColor,
UINT nColors,
RGBQUAD* prgbColors) const throw();
パラメーター
iFirstColor
取得する最初のエントリのカラー テーブル インデックス。
nColors
取得するカラー テーブル エントリの数。
prgbColors
カラー テーブル エントリを取得する RGBQUAD
構造体の配列へのポインター。
CImage::GetDC
現在画像が選択されているデバイス コンテキストを取得します。
HDC GetDC() const throw();
戻り値
デバイス コンテキストを識別するハンドル。
解説
GetDC
の呼び出しごとに、その後で ReleaseDC
を呼び出す必要があります。
CImage::GetExporterFilterString
画像の保存に使用できる画像形式を検索します。
static HRESULT GetExporterFilterString(
CSimpleString& strExporters,
CSimpleArray<GUID>& aguidFileTypes,
LPCTSTR pszAllFilesDescription = NULL,
DWORD dwExclude = excludeDefaultSave,
TCHAR chSeparator = _T('|'));
パラメーター
strExporters
CSimpleString
オブジェクトへの参照です。 詳細については、「解説」を参照してください。
aguidFileTypes
GUID の配列。各要素が文字列内のファイルの種類の 1 つに対応します。 下の pszAllFilesDescription
の例では、aguidFileTypes[0]
は GUID_NULL
であり、配列の残りの値は、現在のオペレーティング システムでサポートされている画像ファイル形式です。
Note
すべての定数の一覧については、Windows SDK で画像ファイル形式定数に関する記事を参照してください。
pszAllFilesDescription
このパラメーターが NULL
でない場合、フィルター文字列の一覧の先頭にフィルターが 1 つ追加されます。 このフィルターは、その説明の現在の値が pszAllFilesDescription
であり、一覧内の他のエクスポーターでサポートされている任意の拡張子のファイルを受け入れます。
次に例を示します。
//First filter in the list will be titled "All Image Files", and
//will accept files with any extension supported by any exporter.
CImage::GetExporterFilterString(
strExporters, aguidFileTypes,
_T("All Image Files"));
dwExclude
一覧から除外するファイルの種類を指定するビット フラグのセット。 使用できるフラグは次のとおりです。
excludeGIF
= 0x01 GIF ファイルを除外します。excludeBMP
= 0x02 BMP (Windows ビットマップ) ファイルを除外します。excludeEMF
= 0x04 EMF (拡張メタファイル) ファイルを除外します。excludeWMF
= 0x08 WMF (Windows メタファイル) ファイルを除外します。excludeJPEG
= 0x10 JPEG ファイルを除外します。excludePNG
= 0x20 PNG ファイルを除外します。excludeTIFF
= 0x40 TIFF ファイルを除外します。excludeIcon
= 0x80 ICO (Windows アイコン) ファイルを除外します。excludeOther
= 0x80000000 上の一覧にない他のファイルの種類を除外します。excludeDefaultLoad
= 0 読み込みの場合、すべてのファイルの種類を既定で含めます。excludeDefaultSave
=excludeIcon | excludeEMF | excludeWMF
保存の場合、これらのファイルは、通常、特別な要件があるため、既定で除外されます。
chSeparator
画像形式の間で使用される区切り記号。 詳細については、「解説」を参照してください。
戻り値
標準の HRESULT
。
解説
結果の形式文字列を MFC の CFileDialog
オブジェクトに渡すことで、使用可能な画像形式のファイル拡張子をファイルの [名前を付けて保存] ダイアログ ボックスで公開できます。
strExporter
パラメーターの形式は次のとおりです。
file description 0|*.ext0|file description 1|*.ext1|...file description N|*.extN||
ここで |
は、 chSeparator
で指定された区切り文字です。 次に例を示します。
"Bitmap format|*.bmp|JPEG format|*.jpg|GIF format|*.gif|PNG format|*.png||"
MFC CFileDialog
オブジェクトにこの文字列を渡す場合は、既定の区切り記号|
を使用します。 この文字列を共通の [ファイルの保存] ダイアログ ボックスに渡す場合は、null 区切り記号 '\0'
を使用します。
CImage::GetHeight
画像の高さ (ピクセル単位) を取得します。
int GetHeight() const throw();
戻り値
画像の高さ (ピクセル単位)。
CImage::GetImporterFilterString
画像の読み込みに使用できる画像形式を検索します。
static HRESULT GetImporterFilterString(
CSimpleString& strImporters,
CSimpleArray<GUID>& aguidFileTypes,
LPCTSTR pszAllFilesDescription = NULL,
DWORD dwExclude = excludeDefaultLoad,
TCHAR chSeparator = _T('|'));
パラメーター
strImporters
CSimpleString
オブジェクトへの参照です。 詳細については、「解説」を参照してください。
aguidFileTypes
GUID の配列。各要素が文字列内のファイルの種類の 1 つに対応します。 下の pszAllFilesDescription
の例では、*aguidFileTypes[0]*
は GUID_NULL
であり、配列の残りの値は、現在のオペレーティング システムでサポートされている画像ファイル形式です。
Note
すべての定数の一覧については、Windows SDK で画像ファイル形式定数に関する記事を参照してください。
pszAllFilesDescription
このパラメーターが NULL
でない場合、フィルター文字列の一覧の先頭にフィルターが 1 つ追加されます。 このフィルターは、その説明の現在の値が pszAllFilesDescription
であり、一覧内の他のエクスポーターでサポートされている任意の拡張子のファイルを受け入れます。
次に例を示します。
//First filter in the list will be titled "All Image Files", and
//will accept files with any extension supported by any importer.
CImage::GetImporterFilterString(
strImporters, aguidFileTypes,
_T("All Image Files"));
dwExclude
一覧から除外するファイルの種類を指定するビット フラグのセット。 使用できるフラグは次のとおりです。
excludeGIF
= 0x01 GIF ファイルを除外します。excludeBMP
= 0x02 BMP (Windows ビットマップ) ファイルを除外します。excludeEMF
= 0x04 EMF (拡張メタファイル) ファイルを除外します。excludeWMF
= 0x08 WMF (Windows メタファイル) ファイルを除外します。excludeJPEG
= 0x10 JPEG ファイルを除外します。excludePNG
= 0x20 PNG ファイルを除外します。excludeTIFF
= 0x40 TIFF ファイルを除外します。excludeIcon
= 0x80 ICO (Windows アイコン) ファイルを除外します。excludeOther
= 0x80000000 上の一覧にない他のファイルの種類を除外します。excludeDefaultLoad
= 0 読み込みの場合、すべてのファイルの種類を既定で含めます。excludeDefaultSave
=excludeIcon | excludeEMF | excludeWMF
保存の場合、これらのファイルは、通常、特別な要件があるため、既定で除外されます。
chSeparator
画像形式の間で使用される区切り記号。 詳細については、「解説」を参照してください。
解説
結果の形式文字列を MFC の CFileDialog
オブジェクトに渡すことで、使用可能な画像形式のファイル拡張子を [ファイルを開く] ダイアログ ボックスで公開できます。
strImporter
パラメーターの形式は次のとおりです。
'file description 0|.ext0|file description 1|。ext1|...ファイルの説明 N|*.extN||
ここで |
は、 chSeparator
で指定された区切り文字です。 次に例を示します。
"Bitmap format|*.bmp|JPEG format|*.jpg|GIF format|*.gif|PNG format|*.png||"
MFC CFileDialog
オブジェクトにこの文字列を渡す場合は、既定の区切り記号|
を使用します。 この文字列を共通の File Open ダイアログ ボックスに渡す場合は、null 区切り記号'\0'
を使用します。
CImage::GetMaxColorTableEntries
カラー テーブルのエントリの最大数を取得します。
int GetMaxColorTableEntries() const throw();
戻り値
カラー テーブル内のエントリの数。
解説
このメソッドは、DIB セクションのビットマップだけをサポートします。
CImage::GetPitch
画像のピッチを取得します。
int GetPitch() const throw();
戻り値
画像のピッチ。 戻り値が負の場合、ビットマップはボトムアップ DIB であり、原点は左下隅です。 戻り値が正の場合、ビットマップはトップダウン DIB であり、原点は左上隅です。
解説
ピッチは、1 つのビットマップの線の先頭と次のビットマップの線の先頭を表す 2 つのメモリ アドレスの間の距離 (バイト単位) です。 ピッチはバイト単位で測定されるため、画像のピッチはピクセル形式を決定するのに役立ちます。 ピッチには、ビットマップ用に予約されている追加のメモリが含まれることもあります。
画像の個々のピクセルを検索するには、GetPitch
と GetBits
を使用します。
Note
このメソッドは、DIB セクションのビットマップだけをサポートします。
CImage::GetPixel
x と y によって指定された位置にあるピクセルの色を取得します。
COLORREF GetPixel(int x, int y) const throw();
パラメーター
x
ピクセルの x 座標。
y
ピクセルの y 座標。
戻り値
ピクセルの赤、緑、青 (RGB) の値。 ピクセルが現在のクリッピング領域の外側にある場合、戻り値は CLR_INVALID
になります。
CImage::GetPixelAddress
ピクセルの正確なアドレスを取得します。
void* GetPixelAddress(int x, int y) throw();
パラメーター
x
ピクセルの x 座標。
y
ピクセルの y 座標。
解説
アドレスは、ピクセルの座標、ビットマップのピッチ、およびピクセルあたりのビット数に基づいて決定されます。
1 ピクセルが 8 ビット未満の形式の場合、このメソッドからはそのピクセルが含まれるバイトのアドレスが返されます。 たとえば、1 ピクセルが 4 ビットの画像形式では、GetPixelAddress
からはバイトの最初のピクセルのアドレスが返され、1 バイトあたり 2 ピクセルの計算を行う必要があります。
Note
このメソッドは、DIB セクションのビットマップだけをサポートします。
CImage::GetTransparentColor
カラー パレット内の透明色のインデックス位置を取得します。
LONG GetTransparentColor() const throw();
戻り値
透明色のインデックス。
CImage::GetWidth
画像の幅 (ピクセル単位) を取得します。
int GetWidth() const throw();
戻り値
ビットマップの幅 (ピクセル単位)。
CImage::IsDIBSection
アタッチされたビットマップが DIB セクションかどうかを判断します。
bool IsDIBSection() const throw();
戻り値
アタッチされたビットマップが DIB セクションの場合は TRUE
。 それ以外の場合は FALSE
。
解説
ビットマップが DIB セクションでない場合は、DIB セクションのビットマップのみをサポートする次の CImage
メソッドを使用できません。
CImage::IsIndexed
ビットマップのピクセルがカラー パレットにマップされるかどうかを判定します。
bool IsIndexed() const throw();
戻り値
インデックス付けされている場合は TRUE
。それ以外の場合は FALSE
。
解説
このメソッドは、ビットマップが 8 ビット (256 色) 以下の場合にのみ TRUE
を返します。
Note
このメソッドは、DIB セクションのビットマップだけをサポートします。
CImage::IsNull
ビットマップが現在読み込まれているかどうかを判定します。
bool IsNull() const throw();
解説
このメソッドは、ビットマップが現在読み込まれていない場合は TRUE
を返します。それ以外の場合は FALSE
を返します。
CImage::IsTransparencySupported
アプリケーションで透明なビットマップがサポートされているかどうかを示します。
static BOOL IsTransparencySupported() throw();
戻り値
現在のプラットフォームが透明度をサポートしている場合は 0 以外。 それ以外の場合は 0。
解説
戻り値が 0 ではなく、透明度がサポートされている場合、AlphaBlend
、TransparentBlt
、または Draw
を呼び出すと、透明色が処理されます。
CImage::Load
画像を読み込みます。
HRESULT Load(LPCTSTR pszFileName) throw();
HRESULT Load(IStream* pStream) throw();
パラメーター
pszFileName
読み込む画像ファイルの名前が含まれる文字列へのポインター。
pStream
読み込む画像ファイルの名前が含まれるストリームへのポインター。
戻り値
標準の HRESULT
。
解説
pszFileName
または pStream
で指定した画像を読み込みます。
有効な画像の種類は、BMP、GIF、JPEG、PNG、TIFF です。
CImage::LoadFromResource
BITMAP
リソースから画像を読み込みます。
void LoadFromResource(
HINSTANCE hInstance,
LPCTSTR pszResourceName) throw();
void LoadFromResource(
HINSTANCE hInstance,
UINT nIDResource) throw();
パラメーター
hInstance
読み込む画像が含まれるモジュールのインスタンスへのハンドル。
pszResourceName
読み込む画像が格納されているリソースの名前が含まれる文字列へのポインター。
nIDResource
読み込むリソースの ID です。
解説
リソースの種類は BITMAP
である必要があります。
CImage::MaskBlt
指定したマスクとラスター操作を使用して、ソースとターゲットのビットマップのカラー データを結合します。
BOOL MaskBlt(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
int xSrc,
int ySrc,
HBITMAP hbmMask,
int xMask,
int yMask,
DWORD dwROP = SRCCOPY) const throw();
BOOL MaskBlt(
HDC hDestDC,
const RECT& rectDest,
const POINT& pointSrc,
HBITMAP hbmMask,
const POINT& pointMask,
DWORD dwROP = SRCCOPY) const throw();
BOOL MaskBlt(
HDC hDestDC,
int xDest,
int yDest,
HBITMAP hbmMask,
DWORD dwROP = SRCCOPY) const throw();
BOOL MaskBlt(
HDC hDestDC,
const POINT& pointDest,
HBITMAP hbmMask,
DWORD dwROP = SRCCOPY) const throw();
パラメーター
hDestDC
実行可能ファイルにリソースが含まれるモジュールへのハンドル。
xDest
ターゲットの四角形の左上隅の x 座標 (論理単位)。
yDest
ターゲットの四角形の左上隅の y 座標 (論理単位)。
nDestWidth
ターゲットの四角形とソースのビットマップの幅 (論理単位)。
nDestHeight
ターゲットの四角形とソースのビットマップの高さ (論理単位)。
xSrc
ソースのビットマップの左上隅の論理 x 座標。
ySrc
ソースのビットマップの左上隅の論理 y 座標。
hbmMask
ソース デバイス コンテキストのカラー ビットマップと組み合わされた白黒マスク ビットマップへのハンドル。
xMask
hbmMask
パラメーターで指定したマスク ビットマップの水平方向のピクセル オフセット。
yMask
hbmMask
パラメーターで指定したマスク ビットマップの垂直方向のピクセル オフセット。
dwROP
ソースとターゲットのデータの組み合わせを制御するためにメソッドが使用する、前景と背景両方の 3 項ラスター演算コードを指定します。 背景ラスター演算コードは、この値の上位ワードの上位バイトに格納します。前景ラスター演算コードは、この値の上位ワードの下位バイトに格納します。この値の下位ワードは無視され、0 にする必要があります。 このメソッドのコンテキストにおける前景と背景の詳細については、Windows SDK の MaskBlt
に関する記事を参照してください。 一般的なラスター演算コードの一覧については、Windows SDK の BitBlt
に関する記事を参照してください。
rectDest
ターゲットを示す RECT
構造体への参照。
pointSrc
ソースの四角形の左上隅を示す POINT
構造体。
pointMask
マスク ビットマップの左上隅を示す POINT
構造体。
pointDest
ターゲットの四角形の左上隅を論理単位で示す POINT
構造体への参照。
戻り値
成功した場合は 0 以外。それ以外の場合は 0。
解説
このメソッドは、Windows NT バージョン 4.0 以降にのみ適用されます。
CImage::operator HBITMAP
CImage
オブジェクトのアタッチされた Windows GDI ハンドルを取得するには、この演算子を使用します。 この演算子は、HBITMAP
オブジェクトの直接使用をサポートするキャスト演算子です。
CImage::PlgBlt
ソース デバイス コンテキストの四角形からターゲット デバイス コンテキストの平行四辺形へのビット ブロック転送を実行します。
BOOL PlgBlt(
HDC hDestDC,
const POINT* pPoints,
HBITMAP hbmMask = NULL) const throw();
BOOL PlgBlt(
HDC hDestDC,
const POINT* pPoints,
int xSrc,
int ySrc,
int nSrcWidth,
int nSrcHeight,
HBITMAP hbmMask = NULL,
int xMask = 0,
int yMask = 0) const throw();
BOOL PlgBlt(
HDC hDestDC,
const POINT* pPoints,
const RECT& rectSrc,
HBITMAP hbmMask = NULL,
const POINT& pointMask = CPoint(0, 0)) const throw();
パラメーター
hDestDC
ターゲット デバイス コンテキストのハンドル。
pPoints
ターゲットの平行四辺形の 3 つの角を示す論理空間内の 3 つの点の配列へのポインター。 ソースの四角形の左上隅がこの配列の 1 番目の点に、右上隅がこの配列の 2 番目の点に、左下隅が 3 番目の点にマップされます。 ソースの四角形の右下隅は、平行四辺形の暗黙の 4 番目の点にマップされます。
hbmMask
ソースの四角形の色をマスクするために使用されるオプションの白黒ビットマップへのハンドル。
xSrc
ソースの四角形の左上隅の x 座標 (論理単位)。
ySrc
ソースの四角形の左上隅の y 座標 (論理単位)。
nSrcWidth
ソースの四角形の幅 (論理単位)。
nSrcHeight
ソースの四角形の高さ (論理単位)。
xMask
白黒ビットマップの左上隅の x 座標。
yMask
白黒ビットマップの左上隅の y 座標。
rectSrc
ソースの四角形の座標を指定する RECT
構造体への参照。
pointMask
マスク ビットマップの左上隅を示す POINT
構造体。
戻り値
成功した場合は 0 以外。それ以外の場合は 0。
解説
hbmMask
が有効な白黒ビットマップを示す場合、PlgBit
はこのビットマップを使用して、ソースの四角形の色データのビットをマスクします。
このメソッドは、Windows NT バージョン 4.0 以降にのみ適用されます。 詳細については、Windows SDK の PlgBlt
に関する記事を参照してください。
CImage::ReleaseDC
デバイス コンテキストを解放します。
void ReleaseDC() const throw();
解説
デバイス コンテキストで選択できるビットマップは一度に 1 つだけなので、GetDC
を呼び出すたびに ReleaseDC
を呼び出す必要があります。
CImage::ReleaseGDIPlus
GDI+ によって使用されているリソースを解放します。
void ReleaseGDIPlus() throw();
解説
グローバル CImage
オブジェクトによって割り当てられたリソースを解放するには、このメソッドを呼び出す必要があります。 以下を参照してください。CImage::CImage
CImage::Save
指定したストリームまたはディスク上のファイルに画像を保存します。
HRESULT Save(
IStream* pStream,
REFGUID guidFileType) const throw();
HRESULT Save(
LPCTSTR pszFileName,
REFGUID guidFileType = GUID_NULL) const throw();
パラメーター
pStream
ファイル画像データが含まれる COM IStream オブジェクトへのポインター。
pszFileName
画像のファイル名へのポインター。
guidFileType
画像を保存するファイルの種類。 以下のいずれかを指定できます。
ImageFormatBMP
圧縮されていないビットマップ画像。ImageFormatPNG
ポータブル ネットワーク グラフィック (PNG) の圧縮された画像。ImageFormatJPEG
圧縮された JPEG 画像。ImageFormatGIF
圧縮された GIF 画像。
Note
すべての定数の一覧については、Windows SDK で画像ファイル形式定数に関する記事を参照してください。
戻り値
標準の HRESULT
。
解説
指定した名前と種類を使用して画像を保存するには、この間数を呼び出します。 guidFileType
パラメーターを指定しないと、ファイル名のファイル拡張子を使用して画像形式が決定されます。 拡張子が指定されていない場合、画像は BMP 形式で保存されます。
CImage::SetColorTable
DIB セクションのパレット内のエントリの範囲に対する、赤、緑、青 (RGB) の色の値を設定します。
void SetColorTable(
UINT iFirstColor,
UINT nColors,
const RGBQUAD* prgbColors) throw();
パラメーター
iFirstColor
設定する最初のエントリのカラー テーブル インデックス。
nColors
設定するカラー テーブル エントリの数。
prgbColors
カラー テーブル エントリを設定する RGBQUAD
構造体の配列へのポインター。
解説
このメソッドは、DIB セクションのビットマップだけをサポートします。
CImage::SetPixel
ビットマップ内の特定の位置にあるピクセルの色を設定します。
void SetPixel(int x, int y, COLORREF color) throw();
パラメーター
x
設定するピクセルの水平位置。
y
設定するピクセルの垂直位置。
color
ピクセルを設定する色。
解説
ピクセル座標が選択されているクリッピング領域の外側にある場合、このメソッドは失敗します。
CImage::SetPixelIndexed
カラー パレットの iIndex
にある色にピクセルの色を設定します。
void SetPixelIndexed(int x, int y, int iIndex) throw();
パラメーター
x
設定するピクセルの水平位置。
y
設定するピクセルの垂直位置。
iIndex
カラー パレット内の色のインデックス。
CImage::SetPixelRGB
x
と y
で指定した位置のピクセルを、赤、緑、青 (RGB) の画像の r
、g
、b
で示される色に設定します。
void SetPixelRGB(
int x,
int y,
BYTE r,
BYTE g,
BYTE b) throw();
パラメーター
x
設定するピクセルの水平位置。
y
設定するピクセルの垂直位置。
r
赤色の強度。
g
緑色の強度。
b
青色の強度。
解説
赤、緑、青の各パラメーターは、それぞれ 0 から 255 の数値で表されます。 3 つのパラメーターすべてを 0 に設定した場合、結合された結果の色は黒になります。 3 つのパラメーターすべてを 255 に設定した場合、結合された結果の色は白になります。
CImage::SetTransparentColor
インデックスで指定した特定の位置の色を透明として設定します。
LONG SetTransparentColor(LONG iTransparentColor) throw();
パラメーター
iTransparentColor
透明に設定する色のカラー パレット内のインデックス。 -1 の場合、色は透明に設定されます。
戻り値
以前に透明として設定された色のインデックス。
CImage::StretchBlt
ソース デバイス コンテキストからこの現在のデバイス コンテキストにビットマップをコピーします。
BOOL StretchBlt(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
DWORD dwROP = SRCCOPY) const throw();
BOOL StretchBlt(
HDC hDestDC,
const RECT& rectDest,
DWORD dwROP = SRCCOPY) const throw();
BOOL StretchBlt(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
int xSrc,
int ySrc,
int nSrcWidth,
int nSrcHeight,
DWORD dwROP = SRCCOPY) const throw();
BOOL StretchBlt(
HDC hDestDC,
const RECT& rectDest,
const RECT& rectSrc,
DWORD dwROP = SRCCOPY) const throw();
パラメーター
hDestDC
ターゲット デバイス コンテキストのハンドル。
xDest
ターゲットの四角形の左上隅の x 座標 (論理単位)。
yDest
ターゲットの四角形の左上隅の y 座標 (論理単位)。
nDestWidth
ターゲットの四角形の幅 (論理単位)。
nDestHeight
ターゲットの四角形の高さ (論理単位)。
dwROP
実行するラスター操作。 ラスター操作コードでは、ソースのビット、ターゲット、ターゲットを作成するためのパターン (現在選択されているブラシで定義されているもの) を組み合わせる方法を正確に定義します。 他のラスター操作コードとその説明の一覧については、Windows SDK の BitBlt
に関する記事を参照してください。
rectDest
ターゲットを示す RECT
構造体への参照。
xSrc
ソースの四角形の左上隅の x 座標 (論理単位)。
ySrc
ソースの四角形の左上隅の y 座標 (論理単位)。
nSrcWidth
ソースの四角形の幅 (論理単位)。
nSrcHeight
ソースの四角形の高さ (論理単位)。
rectSrc
ソースを示す RECT
構造体への参照。
戻り値
成功した場合は 0 以外。それ以外の場合は 0。
解説
詳細については、Windows SDK の StretchBlt
に関する記事を参照してください。
CImage::TransparentBlt
ソース デバイス コンテキストからこの現在のデバイス コンテキストにビットマップをコピーします。
BOOL TransparentBlt(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
UINT crTransparent = CLR_INVALID) const throw();
BOOL TransparentBlt(
HDC hDestDC,
const RECT& rectDest,
UINT crTransparent = CLR_INVALID) const throw();
BOOL TransparentBlt(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
int xSrc,
int ySrc,
int nSrcWidth,
int nSrcHeight,
UINT crTransparent = CLR_INVALID) const throw();
BOOL TransparentBlt(
HDC hDestDC,
const RECT& rectDest,
const RECT& rectSrc,
UINT crTransparent = CLR_INVALID) const throw();
パラメーター
hDestDC
ターゲット デバイス コンテキストのハンドル。
xDest
ターゲットの四角形の左上隅の x 座標 (論理単位)。
yDest
ターゲットの四角形の左上隅の y 座標 (論理単位)。
nDestWidth
ターゲットの四角形の幅 (論理単位)。
nDestHeight
ターゲットの四角形の高さ (論理単位)。
crTransparent
透明として扱うソース ビットマップの色。 既定では、画像の透明色として現在設定されている色を使用する必要があることを示す CLR_INVALID
。
rectDest
ターゲットを示す RECT
構造体への参照。
xSrc
ソースの四角形の左上隅の x 座標 (論理単位)。
ySrc
ソースの四角形の左上隅の y 座標 (論理単位)。
nSrcWidth
ソースの四角形の幅 (論理単位)。
nSrcHeight
ソースの四角形の高さ (論理単位)。
rectSrc
ソースを示す RECT
構造体への参照。
戻り値
成功した場合は TRUE
、それ以外の場合は FALSE
。
解説
TransparentBlt
は、ピクセルあたり 4 ビットおよびピクセルあたり 8 ビットのソース ビットマップに対してサポートされます。 ピクセルあたり 32 ビットのビットマップを透明として指定するには、CImage::AlphaBlend
を使用します。
例
// Performs a transparent blit from the source image to the destination
// image using the images' current transparency settings
BOOL TransparentBlt(CImage* pSrcImage, CImage* pDstImage,
int xDest, int yDest, int nDestWidth, int nDestHeight)
{
HDC hDstDC = NULL;
BOOL bResult;
if(pSrcImage == NULL || pDstImage == NULL)
{
// Invalid parameter
return FALSE;
}
// Obtain a DC to the destination image
hDstDC = pDstImage->GetDC();
// Perform the blit
bResult = pSrcImage->TransparentBlt(hDstDC, xDest, yDest, nDestWidth, nDestHeight);
// Release the destination DC
pDstImage->ReleaseDC();
return bResult;
}
関連項目
MMXSwarm
のサンプル
SimpleImage
のサンプル
デバイスに依存しないビットマップ
CreateDIBSection
ATL COM デスクトップ コンポーネント
デバイスに依存しないビットマップ