Gunakan imagemagick untuk mengubah warna buram menjadi alfa

10

Saya memiliki gambar dengan latar belakang hitam dengan elemen putih di latar depan. Gambar memiliki smoothing, jadi ada piksel 'di antara' yang tidak sepenuhnya hitam atau putih. Saya ingin membuat latar belakang transparan. Saya menemukan beberapa tautan tentang cara melakukan ini dengan imagemagick, tetapi semuanya benar-benar mengganti satu warna (misalnya # 000000FF "dengan alfa penuh" # 00000000 "). Saya ingin mempertahankan campuran ... jadi jika ada piksel abu-abu" # 777777FF ", itu akan berubah menjadi sesuatu seperti" # FFFFFF77 ", atau apa pun yang masuk akal.

Adakah yang tahu bagaimana melakukan ini?

berkilau
sumber

Jawaban:

11

Artikel ini menjelaskan dengan sangat baik bagaimana melakukan ini:
http://www.imagemagick.org/Usage/masking/#alpha

Saya menulis sebuah artikel kecil di blog saya:
http://mostlycoincidence.blogspot.se/2012/12/imagemagick-making-glyphs-transparent.html

Pada dasarnya, apa yang ingin Anda lakukan adalah membuat topeng, dan kemudian menerapkan topeng ke gambar. Anda dapat melakukan ini dalam dua langkah:

$ 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

Ini akan membuat putih warna transparan. Untuk membuat hitam warna transparansi hapus -negatebendera.

RaHorakhti
sumber