• ベストアンサー

VB.NET/256色でのBMPファイル保存

いつもお世話になっております。 VS2003/VB.NET/XP Pro SP3 画像処理にアプリケーションを開発していますが、画像処理に関しての知識が乏しくて困っています。 Image.SaveメソッドでBMPファイル保存しようと思っているのですが、フルカラー保存ではなく、256色保存の方法が分かりません。 色々と調べてみたのですが、簡単な方法が見つからず、自前で処理をするしか方法がないのでしょうか? 256色への減色保存を経験がある方からのご教授が頂けると助かります。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

256色なら一度GIFに変換してから BMPにしてみてはいかがでしょう Dim img as Image = Image.FromFile("Sample01.jpg") img.Save("Sample02.gif", Imaging.ImageFormat.Gif) img = Image.FromFile("Sample02.gif") img.Save("Sample03.bmp",Imaging.ImageFormat.Bmp) といった具合で ... 最後の SaveメソッドにImaging.ImageFormat.Bmpを与えないほうがファイルサイズは小さいようです この差異まで調査していません

tatumi4
質問者

お礼

早速、回答を頂き、ありがとうございます。 こんな方法があるとは、思いも付きませんでした。 組んでみたら、ちゃんと256色でビットマップ保存ができました。 実際は、bmpファイルのSave後にimgを編集しますので、imgはPublicで定義してあります。 従って、FromFileでimgを作成するとgifファイルにロックが掛かってしまいますので、2回目のgifファイルの保存でエラーが発生します。 bmpファイルのSave後に、imgをDisposeして、FileStreamでOPENする工夫が必要ですが、非常に有意義な情報でした。 本当にありがとうございました。