2012-11-26 31 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標記添加到您因爲這是你想使用的?