我想使用以下代码将图像保存为Format8bppIndexed:
Bitmap imgsource = new Bitmap(sourceimage);
Bitmap imgtarget = new Bitmap(imgsource.Width, imgsource.Height, PixelFormat.Format8bppIndexed);
for (int I = 0; I <= imgsource.Width - 1; I++)
{
for (int J = 0; J <= imgsource.Height - 1; J++)
{
imgtarget.SetPixel(I, J, imgsource.GetPixel(I, J));
}
}
imgtarget.Save(targetimage);
但我面临的错误是“带有索引像素格式的图像不支持Setpixel”
我希望用索引保存图片 我怎么能这样做?
答案 0 :(得分:2)
请改用:
Bitmap imgtarget = imgsource.Clone(
new Rectangle(0, 0, imgsource.Width, imgsource.Height),
PixelFormat.Format8bppIndexed);
编辑:
GDI +中有两种Image
s:
Bitmap
s和Metafile
s。通常您从位图图像文件(.jpg
,.png
,.bmp
,.gif
,.exif
和.tiff
)加载图像而不是元文件(.wmf
或.emf
)。因此,不是基于图像创建新的位图,而是将Image
对象强制转换为Bitmap
:
Bitmap imgsource = (Bitmap)sourceimage;
代码的第一行,更改图像的origianl属性并将DIP重置为96.