为什么在保存图像时C#中的位图会扩展图像的文件大小?

时间:2019-06-21 15:49:45

标签: c# bitmap

我正在研究一个项目,该项目要求通过修改像素数据数组以不同方式处理图像。在C#中使用Bitmap类非常简单,但是保存Bitmap似乎有奇怪的行为。

即使对于未经任何修饰的图像,其尺寸也会在保存时增大。

例如source.png - 2MB成为destination.png - 3MB

class Program
{
    static void Main(string[] args)
    {
        Bitmap bitmap = new Bitmap(@"SomePath\source.png");
        bitmap.Save(@"SomePath\destination.png", ImageFormat.Png);
    }
}

1 个答案:

答案 0 :(得分:2)

如果在保存图像时使用压缩算法的第三方软件创建了原始图像,则有时会发生这种情况。当您将此图像作为位图对象打开时,压缩是“撤消”的。并且保存后,C#不会使用与第三方软件相同的压缩算法,从而导致生成的图像尺寸扩大。