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


10

フォアグラウンドに白い要素があり、黒い背景の画像があります。画像は平滑化されているため、厳密に黒または白ではない「中間」のピクセルがあります。背景を透明にしたいのですが。imagemagickでこれを行う方法についていくつかのリンクを見つけましたが、それらはすべて1つの色(たとえば#000000FF)を完全なアルファ "#00000000"に厳密に置き換えます。ブレンドを維持したいので、灰色のピクセルがある場合は "# 777777FF」、「#FFFFFF77」などの意味のあるものに変換されます。

誰でもこれを行う方法を知っていますか?

回答:


11

この記事では、これを行う方法を非常によく説明しています: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フラグを削除します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.