【问题标题】:Perl Image::Magick Convert FormatPerl Image::Magick 转换格式
【发布时间】:2013-08-14 08:37:01
【问题描述】:

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

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

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

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

这里是我的代码的 sn-p:

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 to jpg)...我不知道Image::Magick 使用什么压缩器,但似乎与其他压缩器非常不同.. 即:GIMP

【问题讨论】:

    标签: perl imagemagick


    【解决方案1】:

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

    更多信息请见here

    【讨论】:

    • 436 不是 8 的倍数。我建议 448 以保持与 435x210 相似的比例。
    • 嗨伙计们,我听从了你的建议,但我的问题仍然存在。另外,调整到 448,使我的“.jpg”更大我的标准 .png 大约有 159kb .. 转换为 .jpg ~ 191kb ..这种行为太奇怪了..还有其他建议吗?谢谢大家。
    【解决方案2】:

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

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

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

    您可以在Wikipedia 上阅读更多相关信息。

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

    【讨论】:

      猜你喜欢
      • 2012-01-03
      • 1970-01-01
      • 2015-11-28
      • 2014-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多