Размер файла изображения после изменения размера с помощью Imagick и Gmagick - PullRequest
1 голос
/ 02 ноября 2011

При изменении размера изображения, я заметил, что Imagick и Gmagick создают изображения с разными размерами файлов на жестком диске с одинаковыми параметрами:

$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

У кого-нибудь есть идеи, почему такая огромная разница?

1 Ответ

1 голос
/ 03 ноября 2011

Попробуйте изменить настройки сжатия изображения до изменения размера.

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

Дополнительно проверьте размер полученного изображения. Комментарии в документации PHP заставляют меня поверить, что часть автоматического соответствия thumbnailImage не работает так, как вы ожидаете в IMagick.

Из документов PHP:

Функция соответствия thumbnailImage не работает так, как можно было бы ожидать. Вместо этого используйте> это, чтобы создать миниатюру с максимальным размером 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); }
...