imagemagickを使用して不透明色をアルファに変換する

imagemagickを使用して不透明色をアルファに変換する

前景に黒の背景と白の要素を持つイメージがあります。画像が滑らかになったので、中央に厳密に言うと、黒や白ではなく、いくつかのピクセルがあります。背景を透明にしたいです。 imagemagickを使用してこれを行う方法へのいくつかのリンクを見つけましたが、すべて厳密に1つの色を置き換えます(たとえば、「#000000FF」をアルファ値全体の「#00000000」に置き換えます)。ブレンド効果を維持したい。したがって、グレーピクセル「#777777FF」がある場合は、「#FFFFFF77」などの色や意味のある色に変換されます。

これを行う方法を知っている人はいますか?

ベストアンサー1

この記事では、これを行う方法について非常によく説明します。
http://www.imagemagick.org/Usage/masking/#alpha

私は私のブログにこれに関する小さな記事を書きました。
http://mostlycoincidence.blogspot.se/2012/12/imagemagick-making-glyphs-transparent.html

基本的にあなたがする必要があるのは、マスクを作成してからマスクを画像に適用することだけです。これは2つのステップで実行できます。

$ convert image.png -colorspace HSB -separate -negate image_mask.png
$ convert image.png -alpha Off \
>    image_mask.png -compose CopyOpacity -composite \
>    PNG32:image_alpha.png

これにより、白が透明な色になります。透明度の色を黒に変更するには、-negateフラグを削除してください。

おすすめ記事