2012-05-13 89 views
1

我有下面的代碼:PHP ImageMagick的輸出圖像字符串到stdout而不是保存到文件

$animation = 'animation.gif'; 

$watermark = 'watermark.jpg'; 

$watermarked_animation = 'watermarked.gif'; 

$cmd = "$animation -extent 400x255 -coalesce -gravity southwest -geometry +0+0 null: $watermark -layers composite -layers optimize"; 

exec("convert $cmd $watermarked_animation", $output); 

print_r($output); 

我要輸出的圖像串stdout,而不是將其保存到文件?

我該如何做到這一點?

預先感謝您!

+0

此外,您正在主動提供帶有輸出文件('$ watermarked_animation')的轉換。嘗試用'-'替換它以寫入標準輸出。 – ccKep

+0

stdout在這種情況下意味着什麼 - 我對Linux一無所知。你想在瀏覽器中顯示gif而不保存它嗎? – Bonzo

+0

@ccKep:我不想使用ImageMagick的php類。我只需要這一個命令。我也想避免第三方的PHP腳本。 – Marian

回答

2

你有沒有試過把連字符放在目標文件名的位置?工作對我來說,沒有與您但是更復雜的文件名測試它..

因此,例如這個作品很好:

convert test.jpg -size 50x50 - 

要採取的字符集的護理試試這個:

exec('LANG=\"en_US.UTF8\" convert test.jpg -size 50x50 -'); 
+0

它輸出到標準輸出,但是當我使用imagecreatefromstring時,文件看起來被破壞。好處是該文件具有正確的寬度和高度。 – Marian

+0

你應該可以用正確的標題集來回顯它,例如。 'header('Content-Type:image/gif');'在你的情況下。 – ccKep

+0

PLZ也看到我更新的答案 –

0

你也可以嘗試這種方式。

$im = new Imagick('image.jpg'); 
header("Content-type: image/jpeg"); 
$output = (string) $im; 
echo $output; 
相關問題