オーケー。十分なグーグル検索を行い、ImageMagick のマニュアルを実際に気にかけているよりも多く読んだ後、ここに答えがあります。 source.png
というグレースケール画像があるとします。 、これが私のコマンドです。
黒いピクセルを透明にする 白いピクセルをそのまま保持するには、次のコマンドを実行します:
convert source.png -alpha copy -fx '#fff' result.png
代わりに白いピクセルを透明にする 黒をそのままにして、以下を使用:
convert source.png -alpha copy -channel alpha -negate +channel -fx '#000' result.png
最後のコマンドをもう少し詳しく説明しましょう:
convert
– ImageMagic コマンド (複数のうちの 1 つ)source.png
– グレースケールのソース画像。-alpha copy
– 前のファイルの内容をアルファ チャンネルにコピーします。-channel alpha
– 次の演算子のみがアルファ チャネルに影響を与えるように指定します。-negate
– アルファチャンネルを反転します (前の-chanel alpha
のため、そうします) 画像の他の部分には影響しません)。+channel
– 次の演算子のみがカラー チャネルに影響を与え、アルファ チャネルを変更しないように指定します。 (これはデフォルトであるため、最初の単純な例では指定する必要はありません。)-fx '#000'
– カラー チャネルのコンテンツを黒のピクセルに置き換えます。 (+channel
のため アルファチャンネルは影響を受けません)。
その最後の -fx
を含めることは非常に重要です そうしないと、生成された画像のすべての半透明ピクセルの色が保持されます。 (これらのピクセルは半透明なので、明らかではないかもしれませんが、最終結果は期待したものではありません。)
ImageMagick オプションのリストは非常に役に立ちました。