Недавно я начал использовать imagemagick с php, и я относительно новичок в обоих, IM и PHP. Итак, я здесь, чтобы попросить о помощи / предложениях.
Если можно сказать, что пользователь загружает gif или png-изображение на моем сайте, и я хочу, чтобы он был преобразован в jpg, есть ли какая-либо команда, например, например. $image->convert($file,'.jpg)
или команда convert доступна только через exec()
? например, exec(convert picture.png
to picture.jpg)
Что делать, если пользователь снова загружает gif / png на сайт и меняет размер изображения на указанную ширину / высоту и записывает изображение с функцией writeImage IM следующим образом: $image->writeImage(basename.$ext)
где $ext
= jpg. Будет ли это работать правильно, это хорошая практика? Я предполагаю, что это только переименует его, но все же, я не вижу проблемы в этом … oO
Извините, еще один вопрос, я не очень хорошо знаком с exec, лучше ли использовать imagemagick с помощью exec()
, улучшает ли скорость, загружает и т. Д.?
Я не могу ответить на ваши вопросы напрямую, но думал, что я укажу вам на несколько ресурсов:
Что касается того, что лучше, exec или расширение PHP, я задал этот вопрос несколько месяцев назад:
Должен ли я использовать расширение PHP для ImageMagick или просто использовать функцию Exec () PHP для запуска команд терминала?
Для всех функций Image Magick PHP вы должны найти официальное руководство:
http://www.php.net/manual/en/book.imagick.php
Я переключился с Image Magick на Graphics Magick, поскольку я слышал, что он имеет лучшую производительность. Это вилка Image Magick с акцентом на производительность. Большие сайты, такие как Flickr и Etsy, используют его:
http://www.graphicsmagick.org/
Это руководство начало мне:
http://devzone.zend.com/1559/manipulating-images-with-php-and-graphicsmagick/
И у них есть собственное руководство по php.net:
http://php.net/manual/en/book.gmagick.php (большинство команд идентичны Image Magick's)
Я предпочитаю использовать exec (), поскольку он поддерживается намного лучше, чем Imagick (код примера, который вы опубликовали), проще в использовании и поддерживает все операторы (в зависимости от вашей версии), которые снова Imagick не делает. Некоторые из кодов Imagick работают по-разному в разных версиях; есть намного больше примеров Imagick, чем было пару лет назад, когда я впервые начал смотреть на него.
Говорить, что Imagick может быть быстрее и может быть? встроенный в php, хотя некоторые люди не могут его установить.
Я верю, что этот сайт http://valokuva.org/?cat=1 принадлежит разработчику Imagick и имеет множество примеров.
На моем сайте http://www.rubblewebs.co.uk/imagemagick есть много примеров php с exec ()
Что касается двух других вопросов, да, вы можете изменить тип файла с помощью Imagick, и я не уверен в basename. $ Ext – почему бы не попробовать? Пока базовое имя не имеет расширения, оно может работать, но вам может потребоваться указать basename. $ Ext в кавычках.
Что касается скорости, то иногда DD замедляет GD быстрее других времен Imagick или Imagemagick. Вы всегда можете сделать некоторые тесты. Я сделал год назад, и вы можете попробовать код на своем сервере. http://www.rubblewebs.co.uk/imagemagick/speed/Speed_tests_1.pdf