- 締切済み
8bit(256色)グレースケール画像の保存
32bitのRGB画像ではなく、8bitのグレースケール画像を保存したいと考えています。 保存形式は、tiffとbmpのどちらでも構いません。 ですが、以下のような方法では、 アルファチャンネルを含んだ32bitのRGB画像が保存されてしまいます。 (作成中のプログラムの一例) Dim img As Bitmap Dim x As Integer Dim y As Integer img = New Bitmap(256, 50) For x = 0 To 255 For y = 0 To 49 img.SetPixel(x, y, Color.FromArgb(x, x, x)) Next Next img.Save("gradation.tif", System.Drawing.Imaging.ImageFormat.Tiff) なお、一例として単純なグラデーション画像を保存していますが、 あくまでも一例であり、グラデーション画像を作成することが目的ではありません。 最終的には、VisualBasicのBitmapクラスで作成したbitmap画像を Photoshopで、8bitのグレースケール画像として開けることが理想です。 どうか、アドバイスをよろしくお願い致しますm(__)m
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- keiryou0303
- ベストアンサー率50% (6/12)
ファイル形式には仕様がありますので、まず仕様を確認してはどうでしょうか。 参考:http://www.kk.iij4u.or.jp/~kondo/bmp/ で、仕様どおりにbyte配列を作成して、そのままbyte配列をファイルとして保存すればいいです。 一応BitmapをNewする際にPixelFormatをFormat8bppIndexedと指定できますが、 保存した際は8bit画像ではなく24bitあたりになった記憶があります。確かではないですが。
お礼
早速のアドバイス、どうもありがとうございました。 Streamによるファイル操作に苦手意識があり、何となくこの方法を避けていた のですが、避けては通れない道なのでしょうか・・・。 自信はありませんが、挑戦してみます。