imagemagick을 사용하여 불투명 색상을 알파로 변환

imagemagick을 사용하여 불투명 색상을 알파로 변환

전경에 검정색 배경과 흰색 요소가 있는 이미지가 있습니다. 이미지가 매끄러워졌기 때문에 중앙에 엄밀히 말하면 검은색이나 흰색이 아닌 일부 픽셀이 있습니다. 배경을 투명하게 하고 싶습니다. imagemagick을 사용하여 이 작업을 수행하는 방법에 대한 몇 가지 링크를 찾았지만 모두 엄격하게 하나의 색상을 대체합니다(예: "#000000FF"를 전체 알파 값 "#00000000"으로 대체). 블렌딩 효과를 유지하고 싶습니다. 따라서 회색 픽셀 "#777777FF"가 있으면 "#FFFFFF77"과 같은 색상이나 의미가 있는 색상으로 변환됩니다.

이 작업을 수행하는 방법을 아는 사람이 있나요?

답변1

이 기사에서는 이를 수행하는 방법을 매우 잘 설명합니다.
http://www.imagemagick.org/Usage/masking/#alpha

나는 내 블로그에 이에 관한 작은 기사를 썼습니다.
http://mostlycoincidence.blogspot.se/2012/12/imagemagick-making-glyphs-transparent.html

기본적으로 여러분이 해야 할 일은 마스크를 만든 다음 마스크를 이미지에 적용하는 것뿐입니다. 이 작업은 두 단계로 수행할 수 있습니다.

$ 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플래그를 제거하세요.

관련 정보