PDA

Показать полную графическую версию : [решено] ImageMagick: как его установить и пользоваться?


rizz
26-05-2009, 18:42
мне нужно подрезать загруженные изображения, делать watermark, и превьюшки, как сделать на php через GD я знаю
но на хостинге ограничение оперативки 16Мб, и GD при обработке изображений более 1800x1200 не работает, а нужно загружать изображения по 8Мпикселей

наверно этот ImageMagick только хостинг может установить?

Igor_I
26-05-2009, 19:04
В принципе - да. Уточнять лучше у хостера. Только нужно ещё расширение для работы с ним. Но его вроде можно подгрузить самостоятельно.
Можно посмотреть? :)

rizz
26-05-2009, 19:50
ImageMagick, действительно, потребляет на порядок меньше памяти. Он установлен на всех серверах хостинга, путь к утилитам: /usr/bin (например, /usr/bin/convert). Также, для PHP версии 5.2.8 (в панели управления отображается как 5-testing) доступен модуль imagick.

Информацию о том, как пользоваться ImageMagick Вы можете найти на сайте http://php.net/ и на официальной странице проекта: http://www.imagemagick.org/script/command-line-tools.php .

вот чё техподдержка ответила
у меня сейчас PHP версии 5.2.4 стоит, нужно включить 5.2.8? который отображается как 5-testing

и ещё путь к утилитам: /usr/bin нигде на своём аккаунте FTP не могу найти, или это у них где-то установлено?

Igor_I
26-05-2009, 20:19
Насчёт версии не знаю, может и некритично. Оставь пока как есть.
Путь к утилитам это у них на сервере. Через фтп никак, да и не к чему. Вот только не знаю как насчёт путей, на Freebsd как то всё стандартно. Поставил, загрузил, используешь.
Ааа вот к чему это, у тебя получается 2 варианта, либо через расширение, либо напрямую через командную строку. Ну я выбрал первый вариант.
Пример через строку:
/usr/bin/convert rose.jpg rose.png

rizz
29-05-2009, 00:00
переделал скрипт загрузки и обработки изображений, сделал два варианта на Imagick и на GD
через командную строку незнаю как, т.к. запускать его надо в командной строке сервера, подключившись по протоколу ssh
а вот с помошью класса Imagick , оказалось даже проще чем GD

Igor_I
01-06-2009, 01:24
через командную строку незнаю как, т.к. запускать его надо в командной строке сервера, подключившись по протоколу ssh »
Нет, это exec, system - > http://ru2.php.net/manual/ru/book.exec.php
Кстати говоря, уменьшать картинки можно несколькими командами, разница по времени значительна. Сейчас не могу ничего сказать конкретно, хотя замеры делал.

rizz
02-06-2009, 10:31
по протоколу ssh Нет, это exec, system в техподдержке хостинга так написали
Кстати говоря, уменьшать картинки можно несколькими командами, разница по времени значительна »
если учесть что фотка грузится минуту на 1мбит/с, то наверно разницу будет не заметно

$image->resizeImage ($width,$height,imagick::FILTER_LANCZOS,1);
сначала хотел этой, но она сохраняет информацию и прочее, по крайней мере в больших фотках, в мелких обнуляет
а мне нужно как сохранить для web в фотошопе, чтобы информация обнулялась

поэтому пришлось использовать
$image->thumbnailImage($width,$height,false);
с последующей установкой качества, кстате результат пиксел в пиксел совпадает с $image->resizeImage ($width,$height,imagick::FILTER_LANCZOS,1);
может быть влияет, последующая установка качества, или в thumbnailImage используется такой же фильтр $image->resizeImage ($width,$height,imagick::FILTER_LANCZOS,1);

и почему-то при том же выходном весе превьюшек, GD делает более качественные мелкие превьюшки, чем imagick,
можно скомбинировать, но опять переписывать

Igor_I
02-06-2009, 19:27
Вот такими командами можно пользоватся.
$thumb -> resizeImage ($dstX, $dstY, Imagick::FILTER_LANCZOS, 1);
$thumb -> scaleImage ($dstX, $dstY);
$thumb -> thumbnailImage ($dstX, $dstY);
$thumb -> sampleImage ($dstX, $dstY);
и почему-то при том же выходном весе превьюшек, GD делает более качественные мелкие превьюшки, чем imagick,
можно скомбинировать, но опять переписывать »
Пример?
И какую фотку грузишь по минуте.




© OSzone.net 2001-2012