次の方法で共有


ビットマップ関数 (GDI+)

Windows GDI+ は、約 600 個の関数で構成されるフラット API を公開します。これは、Gdiplus.dllに実装され、Gdiplusflat.h で宣言されています。 GDI+ フラット API の関数は、約 40 個の C++ クラスのコレクションによってラップされます。 フラット API で関数を直接呼び出さないでください。 GDI+ を呼び出す場合は常に、C++ ラッパーによって提供されるメソッドと関数を呼び出します。 Microsoft 製品サポート サービスでは、フラット API を直接呼び出すコードのサポートは提供されません。 これらのラッパー メソッドの使用方法の詳細については、「 GDI+ Flat API」を参照してください。

次のフラット API 関数は、 Bitmap C++ クラスによってラップされます。

ビットマップ関数と対応するラッパー メソッド

フラット関数 ラッパー メソッド 説明
GpStatus WINGDIPAPI GdipCreateBitmapFromStream(IStream* stream, GpBitmap **bitmap) Bitmap::Bitmap ストリームに基づいて Bitmap::Bitmap オブジェクトを作成します。 この関数では、イメージ カラー管理 (ICM) は使用されません。 Bitmap::Bitmap コンストラクターの useEmbeddedColorManagement パラメーターが FALSE に設定されている場合に呼び出されます。
GpStatus WINGDIPAPI GdipCreateBitmapFromFile(GDIPCONST WCHAR* filename, GpBitmap **bitmap) Bitmap::Bitmap イメージ ファイルに基づいて Bitmap::Bitmap オブジェクトを作成します。 この関数では ICM は使用されません。 Bitmap::Bitmap コンストラクターの useEmbeddedColorManagement パラメーターが FALSE に設定されている場合に呼び出されます。
GpStatus WINGDIPAPI GdipCreateBitmapFromStreamICM(IStream* stream, GpBitmap **bitmap) Bitmap::Bitmap ストリームに基づいて Bitmap::Bitmap オブジェクトを作成します。 この関数は ICM を使用します。 Bitmap::Bitmap コンストラクターの useEmbeddedColorManagement パラメーターが TRUE に設定されている場合に呼び出されます。
GpStatus WINGDIPAPI GdipCreateBitmapFromFileICM(GDIPCONST WCHAR* filename, GpBitmap **bitmap) Bitmap::Bitmap イメージ ファイルに基づいて Bitmap::Bitmap オブジェクトを作成します。 この関数は ICM を使用します。 Bitmap::Bitmap コンストラクターの useEmbeddedColorManagement パラメーターが TRUE に設定されている場合に呼び出されます。
GpStatus WINGDIPAPI GdipCreateBitmapFromScan0(INT width, INT height, INT stride, PixelFormat format, BYTE* scan0, GpBitmap** bitmap) Bitmap::Bitmap サイズと書式の情報と共にバイト配列に基づいて Bitmap::Bitmap オブジェクトを作成します。
GpStatus WINGDIPAPI GdipCreateBitmapFromGraphics(INT width, INT height, GpGraphics* target, GpBitmap** bitmap) Bitmap::Bitmap Graphics オブジェクト、幅、高さに基づいて Bitmap::Bitmap オブジェクトを作成します。
GpStatus WINGDIPAPI GdipCreateBitmapFromDirectDrawSurface(IDirectDrawSurface7* surface, GpBitmap** bitmap) Bitmap::Bitmap DirectDraw サーフェスに基づいて Bitmap::Bitmap オブジェクトを作成します。 Bitmap::Bitmap オブジェクトは、Bitmap::Bitmap オブジェクトが削除されるか、スコープ外になるまで DirectDraw サーフェスへの参照を保持します。
GpStatus WINGDIPAPI GdipCreateBitmapFromGdiDib(GDIPCONST BITMAPINFO* gdiBitmapInfo, VOID* gdiBitmapData, GpBitmap** bitmap) Bitmap::Bitmap BITMAPINFO 構造体とピクセル データの配列に基づいて Bitmap::Bitmap オブジェクトを作成します。
GpStatus WINGDIPAPI GdipCreateBitmapFromHBITMAP(HBITMAP hbm, HPALETTE hpal, GpBitmap** bitmap) Bitmap::Bitmap Windows Windows グラフィックス デバイス インターフェイス (GDI) ビットマップへのハンドルと GDI パレットへのハンドルに基づいて Bitmap::Bitmap オブジェクトを作成します。
GpStatus WINGDIPAPI GdipCreateHBITMAPFromBitmap(GpBitmap* bitmap, HBITMAP* hbmReturn, ARGB background) Bitmap::GetHBITMAP Bitmap::GetHBITMAP メソッドは、この Bitmap オブジェクトから GDI ビットマップを作成します。
GpStatus WINGDIPAPI GdipCreateBitmapFromHICON(HICON hicon, GpBitmap** bitmap) Bitmap::Bitmap アイコンに基づいて Bitmap オブジェクトを作成します。
GpStatus WINGDIPAPI GdipCreateHICONFromBitmap(GpBitmap* bitmap, HICON* hbmReturn) Bitmap::GetHICON Bitmap::GetHICON メソッドは、この Bitmap オブジェクトからアイコンを作成します。
GpStatus WINGDIPAPI GdipCreateBitmapFromResource(HINSTANCE hInstance, GDIPCONST WCHAR* lpBitmapName, GpBitmap** bitmap) Bitmap::Bitmap アプリケーションまたは DLL インスタンス ハンドルとビットマップ リソースの名前に基づいて Bitmap ::Bitmap オブジェクトを作成します。
GpStatus WINGDIPAPI GdipCloneBitmapArea(REAL x, REAL y, REAL width, REAL height, PixelFormat format, GpBitmap *srcBitmap, GpBitmap **dstBitmap) Bitmap::Clone Bitmap::Clone メソッドは、このビットマップの一部をコピーして、新しい Bitmap オブジェクトを作成します。
GpStatus WINGDIPAPI GdipCloneBitmapAreaI(INT x, INT y, INT width, INT height, PixelFormat format, GpBitmap *srcBitmap, GpBitmap **dstBitmap) Bitmap::Clone Bitmap::Clone メソッドは、このビットマップの一部をコピーして、新しい Bitmap オブジェクトを作成します。
GpStatus WINGDIPAPI GdipBitmapLockBits(GpBitmap* bitmap, GDIPCONST GpRect* rect, UINT flags, PixelFormat format, BitmapData* lockedBitmapData) Bitmap::LockBits Bitmap::LockBits メソッドは、このビットマップの四角形の部分をロックし、指定した形式でピクセル データの読み取りまたは書き込みに使用できる一時的なバッファーを提供します。 バッファーに書き込むピクセル データは、Bitmap::UnlockBits を呼び出すと Bitmap オブジェクトにコピーされます。
GpStatus WINGDIPAPI GdipBitmapUnlockBits(GpBitmap* bitmap, BitmapData* lockedBitmapData) Bitmap::UnlockBits Bitmap::UnlockBits メソッドは、以前に Bitmap::LockBits の呼び出しによってロックされていたこのビットマップの一部のロックを解除します。
GpStatus WINGDIPAPI GdipBitmapGetPixel(GpBitmap* bitmap, INT x, INT y, ARGB *color) Bitmap::GetPixel Bitmap::GetPixel メソッドは、このビットマップ内の指定されたピクセルの色を取得します。
GpStatus WINGDIPAPI GdipBitmapSetPixel(GpBitmap* bitmap, INT x, INT y, ARGB color) Bitmap::SetPixel Bitmap::SetPixel メソッドは、このビットマップ内の指定されたピクセルの色を設定します。
GpStatus WINGDIPAPI GdipBitmapSetResolution(GpBitmap* bitmap, REAL xdpi, REAL ydpi) Bitmap::SetResolution Bitmap::SetResolution メソッドは、この Bitmap オブジェクトの解像度を設定します。
GpStatus WINGDIPAPI GdipBitmapConvertFormat(IN GpBitmap *pInputBitmap, PixelFormat format, DitherType dithertype, PaletteType palettetype, ColorPalette *palette, REAL alphaThresholdPercent) Bitmap::ConvertFormat Bitmap::ConvertFormat メソッドは、ビットマップを指定したピクセル形式に変換します。 ビットマップ内の元のピクセル データは、新しいピクセル データに置き換えられます。
GpStatus WINGDIPAPI GdipInitializePalette(OUT ColorPalette *palette, PaletteType palettetype, INT optimalColors, BOOL useTransparentColor, GpBitmap *bitmap) Bitmap::InitializePalette Bitmap::InitializePalette メソッドは、標準カラー パレット、最適カラー パレット、またはカスタム カラー パレットを初期化します。
GpStatus WINGDIPAPI GdipBitmapApplyEffect(GpBitmap* bitmap, CGpEffect *effect, RECT *roi, BOOL useAuxData, VOID **auxData, INT *auxDataSize) Bitmap::ApplyEffect Bitmap::ApplyEffect メソッドは、指定した効果を適用することによって、この Bitmap オブジェクトを変更します。
GpStatus WINGDIPAPI GdipBitmapCreateApplyEffect(GpBitmap **inputBitmaps, INT numInputs, CGpEffect *effect, RECT *roi, RECT *outputRect, GpBitmap **outputBitmap, BOOL useAuxData, VOID **auxData, INT *auxDataSize) Bitmap::ApplyEffect Bitmap::ApplyEffect メソッドは、指定した効果を既存の Bitmap オブジェクトに適用することで、新しい Bitmap オブジェクトを作成します。
GpStatus WINGDIPAPI GdipBitmapGetHistogram(GpBitmap* bitmap, IN HistogramFormat format, IN UINT NumberOfEntries, OUT UINT *channel0, OUT UINT *channel1, OUT UINT *channel2, OUT UINT *channel3) Bitmap::GetHistogram Bitmap::GetHistogram メソッドは、この Bitmap オブジェクトの指定されたカラー チャネルに対して 1 つ以上のヒストグラム返します。
GpStatus WINGDIPAPI GdipBitmapGetHistogramSize(IN HistogramFormat format, OUT UINT *NumberOfEntries) Bitmap::GetHistogramSize Bitmap::GetHistogramSize は、Bitmap オブジェクトの Bitmap::GetHistogram メソッドを呼び出す前に割り当てる必要がある要素の数 (UINTの配列内) を返します。
Status __stdcall GdipCreateEffect(const GUID guid, CGpEffect **effect) 効果 Effect クラスのすべての子孫のコンストラクターは、GdipCreateEffect を呼び出します。 たとえば、Blur コンストラクターは GdipCreateEffect(BlurEffectGuid, &nativeEffect); を呼び出します。BlurEffectGuid は、Gdipluseffects.h で定義されている定数です。
状態__stdcall GdipDeleteEffect(CGpEffect *effect) virtual ~Effect() Bitmap オブジェクトで使用されるリソースをクリーンアップします。
状態__stdcall GdipGetEffectParameterSize(CGpEffect *effect, UINT *size) Effect::GetParameterSize Effect::GetParameterSize メソッドは、この Effect に現在設定されているパラメーターの合計サイズをバイト単位で取得します。 Effect::GetParameterSize メソッドは、通常、Effect クラスの子孫のインスタンスであるオブジェクトに対して呼び出されます。
Status __stdcall GdipSetEffectParameters(CGpEffect *effect, const VOID *params, const UINT size) 効果 Effect クラスの各子孫には、保護されたメソッド Effect::SetParameters を呼び出す SetParameters メソッドがあり、GdipSetEffectParameters が呼び出されます。 たとえば、Blur::SetParameters メソッドは、Effect::SetParameters(parameters, size) を呼び出します。
状態__stdcall GdipGetEffectParameters(CGpEffect *effect, UINT *size, VOID *params) 効果 Effect クラスの各子孫には、保護されたメソッド Effect::GetParameters を呼び出す GetParameters メソッドがあり、GdipSetEffectParameters が呼び出されます。 たとえば、Blur::GetParameters メソッドは、Effect::GetParameters(parameters, size) を呼び出します。
GpStatus WINGDIPAPI GdipTestControl(GpTestControlEnum コントロール, void * param) ラッパーによって呼び出されない GDI+ の内部テストに使用されます。 画像処理動作の変更を指定します。 param パラメーターの意味は、コントロール パラメーターで渡される値によって異なります。
コントロール パラメーターが TestControlForceBilinear に設定されている場合、paramBOOL 型の値を指します。 その値が TRUE で、現在の補間モードが InterpolationModeNearestNeighbor 以外の場合は、 InterpolationModeBilinear アルゴリズムが使用されます。 param が指す値が FALSE の場合、または現在の補間モードが InterpolationModeNearestNeighbor の場合、GDI+ の動作は変更されません。
コントロール パラメーターが TestControlNoICM に設定されている場合、paramBOOL 型の値を指します。 この値が TRUE の場合、イメージがメモリに読み込まれるときに ICM プロファイルは無視されます。 param が指す値が FALSE の場合、GDI+ の動作は変更されません。
コントロール パラメーターが TestControlGetBuildNumber に設定されている場合、param は 32 ビット整数変数を指す出力パラメーターです。 その変数は GDI+ ビルド番号を受け取ります。
GdipTestControl はスレッド セーフではありません。GDI+ を使用するスレッドは 1 つだけであることを前提としています。 マルチスレッド環境で GdipTestControl を呼び出すと、結果は予測できません。
GpTestControlEnum 列挙には、TestControlForceBilinear = 0、TestControlNoICM = 1、TestControlGetBuildNumber = 2 の 3 つの要素があります。