为什么较小的PNG图像在通过GraphicsMagic调整大小后会比原始图像占用更多空间

sha*_*ors 5 png image-resizing graphicsmagick

原始PNG图片为800x1200,占用约34K。在将图像通过GraphicsMagick调整为320x480尺寸后,生成的图像大约占用37K。(为了进行比较,如果在Windows 7上使用Paint调整了图像的大小,则生成的图像为40K。)这有什么用?调整图像大小的全部目的是节省空间。应该如何使用GraphicsMagick缩小图像大小?

mmg*_*mgp 6

PNG是一种无损格式,通过首先执行称为预测的步骤,然后应用zlib中使用的相同算法来压缩图像数据。预测步骤是有效压缩文件的关键步骤,它基于较早邻居像素的值。

因此,假设您有一个大型的PNG黑色和白色(实际上,我的意思是只有黑色和白色,有些人有时用灰度将其混淆)。还要假设它不是一个很小的棋盘图案。在此图像的许多区域中,您将有一个相对较大的白色区域,然后是一个相对较大的黑色区域,依此类推。当预测器位于这些大区域之一内时,可以毫无困难地正确预测当前像素强度与最后一个像素强度完全相等。这样可以更轻松地更好地压缩描述图像的数据。

现在,让我们使用一些与最近邻居不同的重采样滤镜(例如,Lanczos)缩小该黑白图像的尺寸。这有很大的机会将您的黑白图像转换为具有更大强度范围的灰度图像。这可能会使预测变量的工作更加困难,因此最终文件大小可能会更大。

例如,这是一张黑白的256x256 PNG图像,占用5440字节,将其大小调整(使用三瓣Lanczos)调整为120x120,现在需要7658字节,另一幅调整大小(使用最近的邻居)调整为120x120,占用2467字节。

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明


DWr*_*ght 3

PNG 是一种压缩格式。有时,尝试压缩最大压缩项目实际上会产生更大的项目。因此,如果将 800x1200 调整为较小的尺寸,但结果保留了原始文件中的所有内容,因为原始文件已经尽可能小,您可能会看到这种情况发生。为了演示这一点,请尝试使用 7zip 以超压缩方式压缩一些数据。然后尝试压缩压缩文件。通常第二个压缩文件会比第一个文件大。