Доброго времени суток. Вкратце опишу свою проблему:
Недавно написал небольшой скриптик, который при помощи php и модуля imagick обрабатывает определённое изображение.
Задачи у него такие:
1) Узнать разрешение фотографии используя getImageWidth() и getImageHeight() и сохранить их в переменных(Это пригождается для того чтобы узнать вертикальный кадр или горизонтальный).
2) Переразбить оригинал фотографии до определённого разрешения, допустим(800x533)
3) Сжать переразбитое изображение используя setCompressionQuality()
4) Сохранить сжатое изображение в определённый каталог.
Протестил его на Windows платформе и всё работало как надо.
После этого теста настроил Imagick на FreeBSD и попробовал тот же самый скрипт на данной платформе. Результаты обработки оказались совсем другие.
Покапался и выяснил что пункты 1,2 и 4 работают нормально а вот setCompressionQuality() не давало никаких результатов. Даже после того как я его исключал из кода фотография получалась такого же качества.
Может быть кто сталкивался с такой проблемой?
В кратце скрипт выглядит так:$photo_server_path="./IMG_9019.JPG";
/* Создаём объёкт Imagick */
$image = new Imagick($photo_server_path);
/* Получаем парамеры ширины и высоты */
$height=$image->getImageHeight();
$width=$image->getImageWidth();
/* Если кадр горизонтальный, то делаем ресайз разрешения 800x533 и наоборот */
if ( $width > $height)
{
$image->thumbnailImage(800, 533
}
else {
$image->thumbnailImage(533, 800
}
/* Сжимаем фотографию */
$image->setCompressionQuality(75);
/* Добавляем немного контрастности */
$image->contrastImage(1);/* Сохраняем в файл */
$image->writeImage('./FILTER_BOX.JPG');
> $photo_server_path="./IMG_9019.JPG";
> /* Создаём объёкт Imagick */
> $image = new Imagick($photo_server_path);$image->thumbnailImage(533, 533, true);
> /* Добавляем немного контрастности */
> $image->contrastImage(1);
> /* Сжимаем фотографию */$image->setCompression(imagick::COMPRESSION_JPEG);
> $image->setCompressionQuality(75);
>
> /* Сохраняем в файл */
> $image->writeImage('./FILTER_BOX.JPG');Side note:
ImageMagick слишком медленный для получения thumbnails. Если в каталоге тысячи фотографий, ждать придётся часами.