打开一个图像并使用相同的参数c#重新保存

本文关键字:参数 新保存 保存 一个 图像 | 更新日期: 2023-09-27 17:58:39

在我的代码中,我打开一个位图图像并简单地重新保存它。它应该保持相同的质量和属性。但结果是图像的大小发生了变化,尽管分辨率保持不变,视觉上没有变化。如何在不进行任何更改的情况下打开并保存图像?我的代码:

            Bitmap img = (Bitmap)Image.FromFile(path, true);
            img.Save(path);

将来它应该只改变图像的不透明度,但现在它只是打开并保存它。为什么图像大小会改变?它的大小变得比以前更小(386对301 Kb)

更新:

我对JPG格式的图像做了同样的处理,大小保持不变。只有PNG正在更改其大小。在另一个PNG上,文件大小变大了。有办法避免这种情况吗?

打开一个图像并使用相同的参数c#重新保存

如果文件大小发生变化,则无需担心。PNG是一种无损格式,可以在保存所有信息的同时压缩文件。这意味着,即使文件大小减小,每个像素的信息和确切颜色也将保持不变。

文件的大小取决于用于保存图像的库所使用的算法。对于不同的库和程序,算法可能略有不同。这就是为什么你的图像大小会发生变化。你无法避免这种情况。

您可能将图像保存为与原始文件不同的图像格式。例如,如果原始图像是GIF,则应该执行以下操作:

img.Save(path, System.Drawing.Imaging.ImageFormat.Gif);

任何格式都是这样。

System.Drawing中的PNG编码器不会对图像进行特别大的压缩,也没有办法更改它。许多人尝试使用的EncoderParameters属性被简单地忽略了。

可用软件中不同的PNG编码器提供不同的压缩功能,您将看到的不同之处在于压缩方面的差异。第一个可能在没有压迫的情况下被挽救,第二个可能在更重的压迫下被挽救。