• 締切済み

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

みんなの回答

回答No.1

ファイル形式には仕様がありますので、まず仕様を確認してはどうでしょうか。 参考:http://www.kk.iij4u.or.jp/~kondo/bmp/ で、仕様どおりにbyte配列を作成して、そのままbyte配列をファイルとして保存すればいいです。 一応BitmapをNewする際にPixelFormatをFormat8bppIndexedと指定できますが、 保存した際は8bit画像ではなく24bitあたりになった記憶があります。確かではないですが。

参考URL:
http://www.kk.iij4u.or.jp/~kondo/bmp/
dogcat1997
質問者

お礼

早速のアドバイス、どうもありがとうございました。 Streamによるファイル操作に苦手意識があり、何となくこの方法を避けていた のですが、避けては通れない道なのでしょうか・・・。 自信はありませんが、挑戦してみます。