2013-06-29 11 views
1

Я работаю на PHP приложение, которое превращает автопортрет в карандашный рисунок и часть приложения требует обесцвеченный/перевернутый изображение, похожее на примере ниже:PHP ImageMagick инвертировать цвета

до и после того, как инвертировать: Before and after invert

Это легко создать ненасыщенное изображение, но как бы я смог добиться этого, используя imagemagick? Я пробовал использовать negate, но неудачно провалился.

Вот что я до сих пор:

<?php 
$img = new Imagick(); 
$img->readImage($image); 
$img->modulateImage(100, 0, 100); 
$img->writeImage('image.png'); 
ob_clean();       
header('Content-Type: image/png'); 
echo $img;       
$img->destroy(); 
?> 
+2

Как было 'negate' неудачу? [Imagick :: modulateImage] (http://www.php.net/manual/en/imagick.modulateimage.php), а затем [Imagick :: negateImage] (http://www.php.net/manual/en/ imagick.negateimage.php) будет правильным методом для достижения вашей задачи. – emcconville

ответ

0

По this странице, вы можете вызвать ImageMagick фильтр PHP функции:

function negateImage($imagePath, $grayOnly, $channel) { 
$imagick = new Imagick(realpath($imagePath)); 
$imagick->negateImage($grayOnly, $channel); 
header("Content-Type: image/jpg"); 
echo $imagick->getImageBlob(); 

}