1

我有一个小脚本,用于调整目录中所有图像的大小。我在 cygwin 中运行这个脚本,它使用“转换”来调整图像大小。图像可以很好地改变它们的分辨率,但是在脚本运行后我遇到了文件大小问题。

我通常使用这个脚本来调整从 Powerpoint 演示文稿中导出的图像的大小,以便在我编写的一个小型 Web 演示文稿应用程序中使用。当我转储 gif 并运行脚本时,文件大小增加了一倍以上(例如 8KB 到 18KB;14KB 到 50KB)

脚本的相关行如下:

/usr/bin/convert $holdfile -thumbnail x480 temp.GIF
mv temp.GIF $i

是否有一个开关可以防止文件大小增长这么多?我知道文件大小并不大,但是当我有很多人连接到演示文稿或不可避免的拨号用户时,我只想让他们的体验尽可能好。

编辑:我应该指定文件以 960 像素 x 720 像素的分辨率开始,并且正在调整为 640 像素 x 480 像素。

4

2 回答 2

2

好吧,如果 convert 压缩比输入文件更差,就会发生这种情况。由于完全相同的压缩方案可能会产生不同的结果,这取决于压缩代码的好坏程度。

另一个更可能的选择可能是您正在调整图像的大小,这可能会通过双三次调整大小来完成。这会导致文本或绘图的边缘变得有点模糊。这意味着它们会消耗更多的颜色并且压缩得更差。

也可能是您的原始图像使用了优化的调色板,可能只有几种颜色,并且在调整大小后,由于调整大小完成了平滑,因此它们需要单个 GIF 帧支持的完整 256 种颜色。

无论如何,您可能会看到使用 PNG 而非 GIF 获得更好的性能。PNG 被设计为 GIF 的现代替代品,目前使用的(图形)浏览器在显示 PNG(没有 alpha 通道)时没有问题。PNG 的压缩比 GIF 好得多,并且同时允许更多颜色。还有一些像 optipng 这样的工具可以进一步压缩 PNG 图像。

于 2009-07-29T13:23:14.940 回答
0

转换会自动优化调色板,但是由于在调整大小期间混合颜色,调色板可能会增长。您应该能够在图形程序中检查源图像和结果图像并查看颜色数量。

GIF 仅支持 LZW 压缩,但由于专利限制已经过期(最后一次是 2004 年),曾经需要手动启用 LZW 压缩。我不确定是否仍然如此,但值得研究。

如果指定了 LZW 压缩但未启用 LZW 压缩,则图像数据以 LZW 解码器可以读取的未压缩 LZW 格式写入。这可能会导致 GIF 文件超出预期。- imagemagick.org

于 2009-07-29T13:52:52.510 回答