2013-03-18 1 views
2

В приведенном ниже коде iam пытается вывести изображение с помощью обработки изображения imagemagick. Здесь iam применяет радиус границы к входному изображению. Я получаю вывод, когда iam сохраняет изображение в выходной папке со следующим кодом.PHP Imagemagick - passthru не работает при попытке вывода изображения без сохранения в локальную папку

<?php 
$input = "input.png"; 
$s = 10; 
$t = 10; 
$size = getimagesize ($input); 
$output = $outputfolder . $outputname; 
exec("convert -size " . $size [0] . "x" . $size [1] . " xc:none -fill -transparent 
-draw \"roundRectangle 0,0 " . $size [0] . "," . $size [1] . " $s,$t\" " . $input . 
" -compose SrcIn -composite " . $output . " "); 
?> 

Мне нужен выходной файл, который не был сохранен в локальной папке, но должен отображать вывод с типом содержимого заголовка. Я использую passthru для этого. Но я не получаю выход. Я пытаюсь использовать следующий код:

<?php 
$input = "input.png"; 
header("Content-Type: image/png"); 
$size = getimagesize ($input); 
$s = 10; 
$t = 10; 
$cmd = " - size " . $size [0] . 
       "x" . $size [1] . " xc:none -fill -transparent -draw 
\"roundRectangle 0,0 " . 
       $size [0] . "," . $size [1] . " $s,$t\" " . 
       " -compose SrcIn -composite" . 
       " -tile - $input"; 

passthru("convert $cmd PNG :-") 

?> 

Я думаю, что я ошибаюсь в команде, которую использовал. Пожалуйста, помогите мне в этом. Заранее спасибо.

+1

эхо из команды и запустить ее вручную через консоль и посмотреть, выводит ли команда то, что вы ожидаете. если команда не производит никаких данных, она не передаст ничего в passthru – bizzehdee

ответ

0

Можете ли вы объяснить свои аргументы позади, желая сохранить файл? С какой целью преобразуется изображение?

До тех пор пока я не получу эту дополнительную информацию, я выйду на конечность и предположим, что изображение загружается как часть CMS и подстраивается под макет, а затем отображается для пользователей?

Если это так, я бы сохранил выходной файл, а затем сделал что-то вроде его отображения.

header("Content-Type: image/png"); 
echo file_get_contents($pathToImage) 

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