ใช้ imagemagick เพื่อแปลงสีทึบเป็น alpha


10

ฉันมีรูปภาพที่มีพื้นหลังสีดำและมีองค์ประกอบสีขาวอยู่เบื้องหน้า ภาพมีความเรียบจึงมีพิกเซล 'อยู่ระหว่าง' ซึ่งไม่ได้เป็นสีดำหรือสีขาว ฉันต้องการทำให้พื้นหลังโปร่งใส ฉันพบลิงค์หลายอันเกี่ยวกับวิธีการทำเช่นนี้ด้วย imagemagick แต่ทุกลิงก์แทนที่สีเดียว (พูด # 000000FF "ด้วย alpha แบบเต็ม" # 00000000 ") ฉันต้องการรักษาการผสมแบบผสม ... ดังนั้นหากมีพิกเซลสีเทา" # 777777FF "มันจะกลายเป็นอะไรบางอย่างเช่น" # FFFFFF77 "หรืออะไรก็ตามที่เหมาะสม

ไม่มีใครรู้วิธีการทำเช่นนี้?

คำตอบ:


11

บทความนี้อธิบายวิธีการทำสิ่งนี้ได้ดีมาก:
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ธงออก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.