閉じる

GUID_WICPixelFormat8bppGrayと WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT(0x88982f80)

GUID_WICPixelFormat8bppGrayを指定して IWICBitmapFrameEncode::SetPixelFormatを呼び、8bppなデータを IWICBitmapFrameEncode::WritePixelsで書き込もうとすると件のエラーに。
IWICBitmapFrameEncode::SetPalette呼び出しの有無は関係ない模様。
まぁ 文字通りサポートされないフォーマットというのだから仕方がない。
物理的には同等である GUID_WICPixelFormat8bppIndexedを指定して IWICBitmapFrameEncode::SetPixelFormatを呼ぶことで逃げられはする。
GUID_WICPixelFormat8bppGrayって微妙よね。
パレットの内容がグレースケールなだけの GUID_WICPixelFormat8bppIndexedを GUID_WICPixelFormat8bppGrayと論理的に定義しているだけなので、ファイルに保存したりして物理層を介しちゃうと GUID_WICPixelFormat8bppIndexedにしか見えない。

コメントを残す

メールアドレスが公開されることはありません。必須項目には印がついています *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)