いつもお世話になります。
Windows7, Visual Studio 2010での質問です。
32ビットフルカラーのビットマップを、
4ビットグレースケールに変更して保存したいと考えています。
Bitmap gray = convert2Grayscale(bmp);
gray.Save("gray.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
bmp.Save("color.bmp" ,System.Drawing.Imaging.ImageFormat.Bmp);
private Bitmap convert2Grayscale(Bitmap original) {
Bitmap newBitmap = new Bitmap(original.Width, original.Height);
for (int i = 0; i < original.Width; i++){
for (int j = 0; j < original.Height; j++){
Color originalColor = original.GetPixel(i, j);
int grayScale = (int)((originalColor.R * .3) + (originalColor.G * .59) + (originalColor.B * .11));
Color newColor = Color.FromArgb(grayScale, grayScale, grayScale);
newBitmap.SetPixel(i, j, newColor);
}
}
return newBitmap;
}
でグレー化はできたのですが、できた画像も32ビットの深度をもっています。
4ビットで保存するにはどのようにしたらよいでしょうか?