ImageMagick Exec и конвертировать
Недавно я начал использовать imagemagick с php, и я относительно новичок в обоих из них, IM и PHP. Итак, я здесь, чтобы попросить некоторую помощь / предложение (я).
Первый
Если, скажем, пользователь загружает изображение gif или png на мой сайт, и я хочу, чтобы оно было преобразовано в jpg, есть ли какая-нибудь команда, например, например.$image->convert($file,'.jpg)
или команда convert доступна только через exec()
? как например exec(convert picture.png
to picture.jpg)
второй
Что если снова, пользователь загружает на сайт gif/png, а я изменяю размер изображения до указанной ширины / высоты и записываю изображение с помощью функции IM IM writeImage, например:$image->writeImage(basename.$ext)
где $ext
= JPG Будет ли это работать правильно, это хорошая практика? Я предполагаю, что это только переименует это, но все же, я не вижу проблемы в этом... oO
О, извините, еще один вопрос, я не очень знаком с exec, лучше ли использовать imagemagick, используя exec()
, это улучшает скорость, нагрузку и т. д.?
2 ответа
Я не могу ответить на ваши вопросы напрямую, но думал, что я укажу вам несколько ресурсов:
Что касается лучшего, exec или расширения PHP, я задал этот же вопрос несколько месяцев назад:
Для всех функций PHP Image Magick вы должны найти официальное руководство:
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)
Я предпочитаю использовать exec(), так как он поддерживается намного лучше, чем Imagick (пример кода, который вы опубликовали), проще в использовании и поддерживает все операторы (в зависимости от вашей версии), что опять-таки не в Imagick. Некоторые коды Imagick работают по-разному в разных версиях; Примеров с Imagick гораздо больше, чем пару лет назад, когда я впервые начал на них смотреть.
Сказать, что Imagick может быть быстрее, а может / может быть? встроенный в php, хотя некоторые люди имеют проблемы с его установкой.
Я верю, что этот сайт http://valokuva.org/?cat=1 принадлежит разработчику Imagick и содержит множество примеров.
Мой сайт www.rubblewebs.co.uk/imagemagick имеет много примеров php с exec()
Что касается двух других ваших вопросов, то да, вы можете изменить тип файла с помощью Imagick, и я не уверен насчет базового имени.$ Ext - почему бы не попробовать? Пока у basename нет расширения, оно может работать, но вам может понадобиться включить basename.$ Ext в кавычки.
Что касается скорости, то она зависит от времени, иногда GD быстрее, чем Imagick или Imagemagick. Вы всегда можете сделать несколько тестов. Я сделал это около года назад, и вы можете попробовать код на своем сервере. http://www.rubblewebs.co.uk/imagemagick/speed/Speed_tests_1.pdf