IWICFormatConverter_Initialize

フォーマットコンバータを初期化する。

IWICFormatConverter_Initialize this, pISource, dstFormat, dither, pIPalette, alphaThresholdPercent, paletteTranslate

this : [comobj] IWICFormatConverter インターフェースの COM オブジェクト変数
pISource : [comobj] 型: IWICBitmapSource* 変換する入力ビットマップ。
dstFormat : [var] 型: REFWICPixelFormatGUID 変換先のピクセルフォーマット GUID。
dither : [int] 型: WICBitmapDitherType 変換時に使用する WICBitmapDitherType。
pIPalette : [comobj] 型: IWICPalette* 変換時に使用するパレット。
alphaThresholdPercent : [double] 型: double 変換時に使用するアルファしきい値。
paletteTranslate : [int] 型: WICBitmapPaletteType 変換時に使用するパレット変換種別。

(プラグイン / モジュール : com_misc.dll)

解説

フォーマットコンバータを初期化する。

[戻り値]
型: HRESULT このメソッドが成功した場合は S_OK を返す。それ以外の場合は HRESULT エラーコードを返す。

[備考]
事前定義のパレットがない場合は、まずパレットを作成する必要がある。InitializeFromBitmap
を使ってパレットオブジェクトを作成し、それを他のパラメータと一緒に渡す。
dither、pIPalette、alphaThresholdPercent、paletteTranslate
はビット深度を低減するフォーマットへ変換する際の色損失を緩和するために使用される。これらの設定が不要な変換では、次のパラメータ値を使用すべきである:
dither は WICBitmapDitherTypeNone、pIPalette は
NULL、alphaThresholdPercent は 0.0f、paletteTranslate は
WICBitmapPaletteTypeCustom。
順序付きディザを使用する基本アルゴリズムでは、WICBitmapPaletteType
列挙体で定義された固定パレットを特定の順序で必要とする。多くの場合、出力に実際に提供されるパレットは順序が異なるか、実際の色に微妙な差異がある。これは
Microsoft Windows のパレットを使う場合に当てはまり、Windows
のバージョン間で僅かな違いがある。これに対応するため、フォーマットコンバータにパレットとパレット変換が与えられる。pIPalette
は実際に使用される変換先パレットで、paletteTranslate
は固定パレットである。変換が完了すると、最近傍色マッチングアルゴリズムを使って、固定パレットから pIPalette
内の実際の色へ色がマッピングされる。pIPalette 内の色が paletteTranslate
の色に近くない場合、マッピングは望ましくない結果を生むことがある。WICBitmapDitherTypeOrdered4x4 は、8
ビットフォーマットから 5 または 6
ビットフォーマットへの変換において、色データを正確に変換する方法がないため有用である。WICBitmapDitherTypeErrorDiffusion
は誤差拡散アルゴリズムを選択し、任意のパレットと併用できる。任意のパレットを与える場合は paletteTranslate に
WICBitmapPaletteCustom
を渡すべきである。誤差拡散は順序付きディザリングアルゴリズムよりも優れた結果を提供することが多く、特に IWICPalette
上の最適化されたパレット生成機能と組み合わせると効果的である。Portable Network Graphics (PNG)
のようにアルファチャンネルを持つビットマップを 8bpp
に変換する際、アルファチャンネルは通常無視される。元のビットマップで透明だったピクセルは、それぞれのフォーマットで透明と黒の両方がピクセル値
0 を持つため、最終出力では黒になる。8bpp のコンテンツの中にはアルファカラーを含むものがあり、たとえば Graphics
Interchange Format (GIF)
フォーマットでは単一のパレットエントリを透明色として使用できる。このようなコンテンツに対して alphaThresholdPercent
はどの透明度パーセンテージを透明色にマッピングするかを指定する。アルファ値はピクセルの不透明度(透明度ではなく)に直接比例するため、alphaThresholdPercent
はどの不透明度レベルを完全に透明な色にマッピングするかを示す。たとえば 9.8% は、アルファ値が 25
未満のピクセルが透明色にマッピングされることを意味する。値 100%
は、完全に不透明でないすべてのピクセルを透明色にマッピングする。なおパレットには透明色が含まれているべきである。なければ「透明」色は 0
に最も近い色 (多くの場合は黒) になる。

情報

プラグイン / モジュールcom_misc.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の com_misc.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_com_misc_gen2.hs