bitmap.save没有在c#中保存精确的像素颜色

时间:2017-09-13 06:28:09

标签: c# colors bitmap

我用“bitmap.SetPixel”改变了一个位图文件中的所有像素颜色。当我在PC上保存位图时,当我在photoshop中打开它时,保存的文件对每个像素都有不同的颜色。!!保存的颜色很接近但不一样..请帮帮我。

设置像素颜色:

Bitmap.SetPixel(x, y, MyColor);

保存位图:

Bitmap.Save(MyPath, PicImage.RawFormat );

1 个答案:

答案 0 :(得分:1)

请注意,Image.RawFormat基本上是'使用原始图片格式的简写!'

因此,如果您的图片来源是有损压缩格式,例如jpeg,您将以相同的压缩格式保存,即重新编码,但,最有可能使用不同的压缩机编解码器和/或不同的质量等参数。

所以你可以期待一些轻微的色彩变化。

即使使用完全相同的编解码器等,jpeg也必须为您正在更改的一个像素创建不同版本的压缩表。

确保原始图片使用无损压缩,例如png或某些tif格式,以避免此影响。

确保您可能需要明确指定格式。