我正在搬到一家新的托管公司,不允许我为ImageMagick执行convert
命令。所以我现在必须尝试通过直接的PHP来做到这一点。我花了很多时间试图解决它以及我所看到的每一个地方,人们建议像我一样使用convert
命令。我非常感谢您在PHP中编写以下命令的任何帮助或指导。
# Applies overlay $filter_image to the original $image
convert $image ( -clone 0 -alpha off $filter_image -compose SoftLight -composite ) -compose SrcIn -composite $output_image
和
# Apply a blur to an image
convert $image -blur 0x$blur_radius $output_image
更新:
我已经找到了语法并将其作为答案发布。
答案 0 :(得分:1)
祝你好运乔;我建议改为让你使用exec的主机。
我在我的网站上有一些想象功能的例子,你可以将这些功能拼凑在一起:http://www.rubblewebs.co.uk/imagick/functions/function.php
我刚注意到我发布了Imagemagick代码而不是Imagick! 这就像你现在知道Imagick的模糊代码:
bool blurImage(float $ radius,float $ sigma [,int $ channel])
<?php
$im = new Imagick($input);
$im->blurImage( 0, 3 );
$im->writeImage('blurImage.jpg');
$im->destroy();
?>
可能值得为你的帖子添加一个Imagick标签,因为这是你想要使用的?
答案 1 :(得分:0)
我终于自己想出来了。以下是其他人遇到此问题的解决方案。
模糊图像......
$imagick = new Imagick($image);
$imagick->blurImage(0,$blur_radius);
$imagick->writeImage($output_image);
为图像添加叠加层......
$imagick = new Imagick($image);
$overlay = new Imagick($filter_image);
$imagick->compositeImage($overlay, imagick::COMPOSITE_SOFTLIGHT, 0, 0);
$imagick->writeImage($output_image);
您也可以轻松组合这两种方法并模糊图像,然后为其添加复合叠加层。
$imagick = new Imagick($image);
$imagick->blurImage(0,$blur_radius);
$overlay = new Imagick($filter_image);
$imagick->compositeImage($overlay, imagick::COMPOSITE_SOFTLIGHT, 0, 0);
$imagick->writeImage($output_image);