将转换语法转换为PHP(ImageMagick)

时间:2015-04-28 03:06:07

标签: php imagemagick

我对整个ImageMagick PHP库都很陌生。我需要使用ImageMagick将此函数移植到PHP:

convert staticmap.png -gaussian-blur 10 
    \( -size 300x600 gradient:'rgba(255,255,255,0.9)'-'rgba(255,255,255,0.1)' -rotate 270 \) 
    -gravity north -compose over -composite output.png 

或将提供此输出的内容:

Gradient Map

我不能像往常一样使用shell_exec因为我在Google App Engine上运行而且我认为该功能没有启用。

有没有更简单的方法来获得理想的结果?我也想模糊它,但我想我可以把它弄清楚。

编辑:在命令行上找到了更好的方法。希望这有助于转换为PHP?

1 个答案:

答案 0 :(得分:2)

这很简单,因为所有CLI options都直接映射到ImagickMagick

<?php
/* convert */
// staticmap.png
$staticMap = new Imagick('staticmap.png');
// -gaussian-blur 10x0
$staticMap->gaussianBlurImage(10, 0);
// -size 300x600 gradient:'rgba(255,255,255,0.9)'-'rgba(255,255,255,0.1)'
$mask = new Imagick();
$mask->newPseudoImage(300, 600, 'gradient:rgba(255,255,255,0.9)-rgba(255,255,255,0.1)');
//  -rotate 270
$mask->rotateImage('black', 270);
// -gravity north
$staticMap->setGravity(Imagick::GRAVITY_NORTH);
// -compose over -composite
$staticMap->compositeImage($mask, Imagick::COMPOSITE_OVER, 0, 0);
// output.png 
$staticMap->writeImage('output.png');

Convert convert syntax to PHP