2012-05-13 49 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; 
相关问题