1

几个月前,我在我的 perl 服务器上安装了Image::Magick,但现在我有意想不到的行为..

经过数小时的研究,我遇到了一些问题..

我想要做的是将图像从.png 转换为.jpg。

这里没有问题..问题来了。基本上我转换后的文件“.jpg”在转换后总是比.png大..

这是我的代码片段:

my $image = Image::Magick->new;

my  $x = $image->Read($serverPathDir.'/'.$serverFileName);  # an .png file 

    $x = $image->Set( Gravity => 'Center' );
    $x = $image->Resize(geometry=>'435x210'); 
    $x = $image->Set(Quality=>'80%');
    $x = $image->Write($serverPathDir.'/'.'.jpg');

经过一些研究和理论,我意识到这样的问题可能存在于特定图像中..当我用其他图像测试时,结果更令人满意,但没有像 GIMP(png 到 jpg)......我不知道是什么压缩器图像::Magick使用,但似乎与其他人非常不同.. 即:GIMP

4

2 回答 2

1

转换为 jpg 并更改原始尺寸时,请使用 8 的倍数。因此,将调整大小更改为“436x216”的几何形状,看看是否有帮助。

这里了解更多

于 2013-08-12T23:21:40.603 回答
0

该问题可能与已压缩的 PNG 文件有关。

当您转换为另一种格式时,您必须解压缩图像。然后你用另一种格式压缩它,它可能无法像原始格式那样压缩它。
此外,通过使用仅包含实际使用的颜色的调色板,可以进一步压缩具有少量颜色的 PNG。

因此,如果您有足够大的样本量,实际上很可能会找到 JPEG 版本更大的文件。

您可以在Wikipedia上阅读有关它的更多信息。

除非您绝对需要使用 JPEG 格式,否则我只会将大于任意大小的文件转换为 JPEG(较大的文件更有可能是照片。)。(例如无法读取 PNG 文件的程序)

于 2013-08-14T00:37:01.967 回答