Friday, July 18, 2008

ImageMagickとPHPで画像の青っぽいところ以外を明るくする

Imagickで画像の青っぽいところ以外を明るくするには、以下のコードを実行します。

</head>
<body>
<?php
/* 画像の青っぽい所以外を明るくする */
$im = new Imagick('tree1.jpg');
$im->setImageMatte(true);
$im2=$im->fxImage('(hue>0.47&&hue<0.69&&lightness>0.45)?0:1', Imagick::CHANNEL_ALPHA);
$im2->modulateImage(180, 100, 100);
$im3 = new Imagick('tree1.jpg');
$im3->compositeImage($im2, Imagick::COMPOSITE_DEFAULT, 0, 0);

$im3->writeImage('sample503a.jpg');
/* $im3->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im3->destroy();
/* $im2->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im2->destroy();
/* $im->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im->destroy();?>

<img src="sample503a.jpg" />

</body>
</html>

元画像(tree1.jpg)


出力画像(sample503a.jpg)


動作環境
Apache 2.2.8/PHP5.2.5/ImageMagick6.4.2

No comments: