2

coolFreeImageライブラリを使用して、さまざまな形式の画像を正常に読み込んでいます。

これらの中で、透明度情報を含むgifとpng。

画像を読み込んだ後、を使用して32bppに変換しますFreeImage_ConvertToRawBits。私のpng画像では、これは正常に機能し、意味のあるAlpha値を持つ4つのRed / Green / Blue/Alphaコンポーネントすべてを取得できます。

反対に、gif画像の場合、Alpha平面は、FreeImage_IsTransparenttrueと言っても、すべて255のままです。

私は何が欠けていますか?これは、gifがパレット化されているという事実に関連していますか?これをどのように処理しますか?

4

1 に答える 1

2

ソースコードを見て、明確な答えを見つけました。パレット化された画像を32ビットに変換するときに透明度は処理されません。Alphaフィールドは常に255に設定されます。

とにかく、透明色()の値を知っていれば、元のパレット化されたビットマップからピクセルごとに透明度を取得することはかなり可能FreeImage_GetTransparentIndex(dib)です。

于 2013-02-19T15:08:26.207 に答える