【问题标题】:Image filesize after resizing with Imagick and Gmagick使用 Imagick 和 Gmagick 调整大小后的图像文件大小
【发布时间】:2011-11-02 09:17:48
【问题描述】:

在调整图像大小时,我注意到 Imagick 和 Gmagick 使用相同的选项在 HDD 上生成具有不同文件大小的图像:

$image = new Imagick("c.jpg");
$image->thumbnailImage(260,195); 
$image->writeImage("c_imagick.jpg");

输出一个 88kb 的图像

$image = new Gmagick("c.jpg");
$image->thumbnailImage(260,195); 
$image->writeImage("c_gmagick.jpg");

输出一个 15kb 的图像

有人知道,为什么差异如此之大?

【问题讨论】:

  • 欢迎来到 Stack Overflow!您使用哪种操作系统?

标签: php imagemagick imagick graphicsmagick gmagick


【解决方案1】:

尝试在调整大小之前设置图像压缩设置。

     $image->setImageCompression(Imagick::COMPRESSION_JPEG);
     $image->setImageCompressionQuality(80);

此外,检查生成图像的大小。 PHP 文档中的注释让我相信 thumbnailImage 的自动调整部分不能像您在 IMagick 中所期望的那样工作。

来自 PHP 文档:

thumbnailImage 的拟合功能并不像人们预期的那样工作。相反,使用 >this 制作最大为 200x82 的缩略图:

    // Create thumbnail max of 200x82
    $width=$im->getImageWidth();
    if ($width > 200) { $im->thumbnailImage(200,null,0); }

    $height=$im->getImageHeight();
    if ($height > 82) { $im->thumbnailImage(null,82,0); }

【讨论】:

    猜你喜欢
    • 2015-11-03
    • 1970-01-01
    • 2018-06-21
    • 2021-07-20
    • 2023-03-16
    • 1970-01-01
    • 2015-06-16
    • 1970-01-01
    • 2015-10-27
    相关资源
    最近更新 更多