2016年3月7日月曜日

C#のGraphicsでException

C#でBitmapを読み込んでGraphicsを作ると"インデックス付きのピクセル形式をもつイメージからグラフィックス オブジェクトを作成することはできません。"という例外が投げられる。



例外が発生したBitmapのPixelFormatを見るとFormat8bppIndexedとなっている。これは8bitのカラーパレットを使用した画像を読み込んでいるためと思われる。C#側で対応しようと思ったのだけど、画像フォーマットの変換とかは見当たらなかった。ということでとりあえず画像側で対応した。



Paint.NetでPNGを保存する際に自動検出を使うと、モノクロの画像(というか8bitパレットで対応できる画像?)は8bitで保存される。保存する際に24bitとか32bitで画像を保存してやるとGraphicsの作成が成功する。

0 件のコメント:

コメントを投稿