2012-04-30 3 views
1

Я использую ImageMagick (www.imagemagick.org)PHP использование ImageMagick или Imagick или MagicWand

Поскольку я нахожусь на Hostgator я также imagick и magickwand установлены.

Я могу сделать простые манипуляции с воображением и магией, но если я хочу воспроизвести расширенные уроки на imagemagick.org, я потерплю неудачу.

Цель: сделать это рабочие http://www.imagemagick.org/Usage/advanced/#jigsaw

Вопросы:

Как я могу сделать это с Imagick или magickwand?

Мог ли я каким-либо образом обмениваться данными с модулем imagemagick через командную строку, например exec (...)?

Благодаря 4 короткая помощь

ответ

0

Хорошо. Решение с использованием команд командной строки прямо выглядит следующим образом:

exec ("/ usr/lib/convert user/set/seinfeld/image/image/data/apple_cinema_30.jpg -edge .5 -blur 0x. 5 jaw_ege.png ");

так очевидно, что вам нужно знать путь к модулю и правильно установить путь к изображениям (a).

при необходимости обновит инструкции для imagick/magickwand.

1

Вы можете использовать exec() или shell_exec().

Например:

exec('/path/to/your/imagick/convert jigsaw_tmpl.png -edge .5 -blur 0x.5 jigsaw_edge.png'); 

Еще одно напоминание, exec() не будет работать в безопасном режиме PHP.

0

Я думаю, что сложно запутаться в Imagick - не сказать, что этого не может быть - и, как сказано выше, лучшим вариантом будет командная строка Imagemagick и exec(). Создайте его по одной команде за раз; вы можете комбинировать команды позже. Не используйте jpg для любых промежуточных изображений, так как вы начнете потерять качество.

Это зависит от того, какой эффект вы оказываете после того, как у Энтони есть сценарий Bash, который вы можете использовать, связанный в нижней части этого раздела страницы.

Вы можете запустить, что с PHP с помощью Exec: Загрузить скрипт на сервер CHMOD это либо 755 или 777 в зависимости от настроек сервера

// Run the script 
exec("/FULL PATH TO JIGSAW/jigsaw options input.jpg mask.png output.png 2>&1", $array); 
//Display any errors 
echo "<br>".print_r($array)."<br></pre>"; 

Я не знаю, если это будет работать на Учетная запись Hostgator, но я не понимаю, почему нет.

Также я не пробовал, и вам нужно изображение маски для вашего входного изображения.

Я только что попробовал это на своем сервере и получил ошибку:/bin/bash^M: плохой интерпретатор: Нет такого файла или каталога Это ничего не значит для меня!

Создание одного кусок головоломки, используя изображения и код Энтони с Imagemagick commaand линии и Exec()

exec("convert jigsaw_tmpl.png -edge .5 -blur 0x.5 jigsaw_edge.png"); 

$cmd = " holocaust_md.jpg \(jigsaw_edge.png -negate \) -geometry +365+96 ". 
" -compose multiply -composite -crop 100x100+365+96 +repage "; 

exec("convert $cmd jigsaw_outline.png");  

$cmd = " holocaust_md.jpg -crop 100x100+365+96! -background none -flatten ". 
" +repage \(jigsaw_tmpl.png +matte \) -compose CopyOpacity -composite ". 
" -rotate -20 -gravity center -crop 100x100+0+0 +repage ";   

exec("convert $cmd jigsaw_cutout.png");   

$cmd = " jigsaw_cutout.png \(+clone -channel A -separate +channel -negate ". 
" -background black -virtual-pixel background -blur 0x2 -shade 120x21.78 ". 
" -contrast-stretch 0% +sigmoidal-contrast 7x50% -fill grey50 -colorize 10% ". 
" +clone +swap -compose overlay -composite \) -compose In -composite "; 

exec("convert $cmd jigsaw_bevel.png");    

$cmd = " jigsaw_bevel.png \(+clone -fill DarkSlateGrey -colorize 100% -repage +0+1 \) ". 
" \(+clone -repage +1+2 \) \(+clone -repage +1+3 \) \(+clone -repage +2+4 \) ". 
" \(+clone -repage +2+5 \) -background none -compose DstOver -flatten"; 

exec("convert $cmd jigsaw_thickness.png"); 

$cmd = " jigsaw_thickness.png \(+clone -background Black -shadow 50x3+4+4 \) ". 
" -background none -compose DstOver -flatten"; 

exec("convert $cmd jigsaw_shadow.png"); 
Смежные вопросы