4

ImageMagickを使用してGIFで色(私の場合は黒)を透明に設定する方法を見つけるのに苦労しました。どうすれば既存のGIF画像のセットにそれを行うことができますか?

私はこのオプションを試しましたが、何もしないようです:

mogrify -transparent-color black -transparent black *.gif

私はこれを読みましたが、実際にGIFで色が透明になる理由については少し困惑しているようです:http://www.imagemagick.org/Usage/formats/#boolean_trans

例えば:

「-transparent-color」を設定しても、GIF画像に透明度が追加されることはなく、指定された色が透明になるように変換されることもありません。オプションは、GIF画像の透明色を表すために使用されるカラーインデックスのカラーテーブルに配置する色を指定するだけです。

特定の(正確な)色を変更して透明にする場合は、「-transparent」色置換演算子を使用します。

しかしその後...

一致したピクセルを反転するには、+transparentを使用します。つまり、一致しないすべての色を透明にします。

-opaque演算子は、-transparentとまったく同じですが、一致する色を、透明ではなく、現在の-fillcolor設定に置き換えます。ただし、-transparent演算子は、「-alpha set」に従って、画像でアルファチャネルが有効になっていることも確認し、アルファチャネル処理を有効にするために-channelを変更する必要はありません。

これは、GIFなどのカラーマップ画像形式に使用される「透明色」として色を定義しないことに注意してください。そのためには-transparent-colorを使用します

4

2 に答える 2

8

を使用しないように警告したいと思いますmogrifymogrify元の画像を上書きして画像を変換します。何か問題が発生した場合、画像は失われます。

むしろ使用してconvertください。変換に問題がないことを確認したら、いつでも元の画像を削除できます。

黒のピクセルを透明にするには、次を使用します。

convert orig.gif -transparent black transp.gif

私にとっては完璧に機能します。

私のIMバージョン:ImageMagick 6.7.8-02012-07-04Q16。君は?

それでも機能しない場合は、GIFの「黒」が黒ではなく、非常に濃い灰色になっている可能性があります。ImageMagickには、GIFのすべての色を列挙するツールもあります。この場合、次の2つのコマンドが役立ちます。

 identify \
   -format "%f: - Uniq Colors: %k - Image transparency channel enabled: %A - Image Depth: %z %c\n" \
    *.gif

 convert \
     *.gif \
    -format "%f :\n%c\n\n" \
     histogram:info:  

黒の色の使用は、名前「黒」、RGB値「(0、0、0)」、および16進値「#000000」で識別できます。したがって、純粋な黒は、最後のコマンドの出力に次のように表示されます。

 5000: (  0,  0,  0) #000000 black

ダークグレーは、たとえば次のようになります。

  100: ( 14, 14, 14,255) #0E0E0E srgba(14,14,14,1)
 2100: (  1,  1,  1,255) #010101 srgba(1,1,1,1)

GIFで透明度を有効にすると、最後のコマンドで各色に4つの値のタプルが表示され、最後の値はアルファチャネルを表します。以前の黒は、次のように出力に表示されます。

 5000: (  0,  0,  0,  0) #00000000 none
于 2012-07-09T08:36:07.710 に答える
-3

GIFに生成したら、-backgroundcolorを試してください。

mogrifyとbackgroundの両方のオプションについては、 http://www.imagemagick.org/script/mogrify.phpのURLを確認してください。下の画像を参照してください。

ここに画像の説明を入力してください

于 2012-07-09T06:04:45.620 に答える