在 C#、.NET 2.0、Windows 窗体、Visual Studio Express 2010 中,我正在保存由相同颜色制成的图像:
Bitmap bitmap = new Bitmap(width, height, PixelFormat.Format32bppArgb);
using (Graphics graphics = Graphics.FromImage(bitmap))
{
Brush brush = new SolidBrush(color);
graphics.FillRectangle(brush, 0, 0, width, height);
brush.Dispose();
}
bitmap.Save("test.png");
bitmap.Save("test.bmp");
例如,如果我正在使用
颜色 [A=153, R=193, G=204, B=17] 或#C1CC11
在我保存图像并在 Paint.NET、IrfanView、XNView 等外部查看器中打开它之后。我被告知图像的颜色实际上是:
颜色 [A=153, R=193, G=203, B=16] 或#C1CB10
所以它是一个相似的颜色,但不一样!
我尝试同时保存 PNG 和 BMP。
当涉及透明度(alpha)时,.NET 会保存不同的颜色!当 alpha 为 255(无透明度)时,它会保存正确的颜色。