2016-12-13 5 views
2

iMagickを使用して、特定の色を透明に変換したいと考えています。私はこれを行う1つの方法を見つけましたが、イメージ全体を調べるのではなく、ペイントバケットのように動作します。iMagick(PHP)の構文で、特定の色のすべてのピクセルを透明に変換しますか?

次の例では、私はこの使用しています:私は見てみたいと思い結果が透明になって、すべての青の領域である

$transparentColor = new ImagickPixel('transparent'); 
$image->floodFillPaintImage($transparentColor, 20000, "#0009c5", 0, 0, false, Imagick::CHANNEL_ALPHA); 

This is the input image This is the output image を。残念ながら、この機能では「塗りつぶし」が重要なポイントであるため、非「ターゲット」カラーに直面したときに停止します。

誰もがiMagick(ラインImageMagickのを指揮ない)を使用して、透明にすべての青い部分を回す達成する方法を知っていますか?

ありがとうございます!

+1

可能な複製を

$image->transparentPaintImage($targetColor, $alphaLevel, $fuzz, false); 

透明部分が "汚い" であれば、それは、スペックル除去するのを助けることができます。色を透明に変更する](http://stackoverflow.com/questions/9297967/imagick-changing-a-color-to-be-transparent) –

答えて

0

試してみてください。

$image->despeckleimage(); 

ドク:[Imagickのhttp://php.net/manual/en/imagick.transparentpaintimage.php

+0

これはうまくいきました!唯一の例外は、このメソッドがImagicPixel(「透過」)を受け入れていないように見えることでした。 最終的には: '$ image-> transparentPaintImage($ targetColor、0.0、$ fuzz、false);' ありがとうございました!本当にありがとう! – Shochu

+0

ああ、そうです。ドキュメントを読み直すと、2番目のパラメータはアルファレベル(0.0〜1.0)です。修正をありがとう - 私は私の答えを編集しました。 –

関連する問題