首页 > 解决方案 > 为什么 C# 中的位图在保存时会扩大图像的文件大小?

问题描述

我正在开发一个项目,该项目需要通过修改像素数据数组以不同方式处理图像。在 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);
    }
}

标签: c#bitmap

解决方案


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


推荐阅读