2015-07-24 5 views
0

Добрый день. Я новичок в Imagemagick, и я просто хочу спросить, что случилось с этим кодомImagemagick Composite Overwriting File

$cmd_for_wm = "composite -gravity southeast watermark.png image.jpg image.jpg;";  
exec($cmd_for_wm); 

Когда я запускаю его в терминале, она работает хорошо, но когда я включил его в PHP, он не работает. Зачем?

Спасибо за заранее :) Ура

+0

Это может быть проблемой путь. Попробуйте использовать абсолютные пути (только для тестирования) –

+0

фактически использовал абсолютный путь, но не работает @AlexTartan – rox

+0

Любые сообщения об ошибках? Что-нибудь в журналах ошибок? –

ответ

0

Я попробовал ваш пример и он «умирает» молча.
Это, с другой стороны, кажется, работает:

$cmd_for_wm = "composite -gravity southeast watermark.png image.jpg image.jpg;";  
passthru($cmd_for_wm); 

Очень интересно, на самом деле. Поскольку основное различие между exec и passthru - это выходная обработка. Позднее используется для двоичных данных.

Мой взгляд на это, что passthru правильно позволяет composite выводить обработанное изображение (которое является двоичные данные) в указанный файл.

Для детального объяснения, пожалуйста, см PHP - exec() vs system() vs passthru()