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 для ImageMagick или просто использовать функцию PHP Exec() для запуска команд терминала?

Для всех функций 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

Другие вопросы по тегам