2012-11-26 86 views
0

我正在转移到一个新的托管公司,该公司不会允许我执行ImageMagick的convert命令。所以我现在必须尝试通过直接的PHP来完成它。我花了不少时间试图弄明白,并且我看到了每个地方,人们推荐像我一样使用convert命令。我会很感激任何帮助或指导在直接PHP写下面的命令。从转换命令转换为ImageMagick的直接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 

UPDATE

我想通了语法和张贴作为一个答案。

+0

如果他们允许您在您的用户帐户执行Perl或Python或只是基本的二进制文件,你可以从PHP调用它们。 –

+0

他们不允许我运行'exec'。这就是为什么我想使用ImageMagick PHP模块完成这一切。 –

回答

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); 
1

祝你好运乔;我会建议更改为允许您使用exec的主机。

我有我的网站上imagick功能,你可能能够与凑齐东西一些例子:http://www.rubblewebs.co.uk/imagick/functions/function.php

我刚才注意到我张贴ImageMagick的代码不是Imagick! 这是因为你现在知道Imagick模糊代码:

布尔blurImage(浮$半径,浮$西格玛[摘要$通道])

<?php 
$im = new Imagick($input); 
$im->blurImage(0, 3); 
$im->writeImage('blurImage.jpg'); 
$im->destroy(); 
?> 

可能是值得加入的Imagick标记添加到您因为这是你想使用的?