URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8348
[ Назад ]

Исходное сообщение
"Image Magick + php + FreeBSD"

Отправлено Viktor F , 11-Июл-09 15:38 
Доброго времени суток. Вкратце опишу свою проблему:
Недавно написал небольшой скриптик, который при помощи 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');


Содержание

Сообщения в этом обсуждении
"Image Magick + php + FreeBSD"
Отправлено ACCA , 11-Июл-09 21:08 
> $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. Если в каталоге тысячи фотографий, ждать придётся часами.