GNU/Linux >> Linux の 問題 >  >> Linux

UNIXシェルでグレースケール画像をアルファチャンネル画像に変換する

オーケー。十分なグーグル検索を行い、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 オプションのリストは非常に役に立ちました。


Linux
  1. Unixでシェルコマンドを編集するためにViキーを使用しますか?

  2. Unixシェルスクリプトのファイル拡張子?

  3. openssh秘密鍵をSsh2秘密鍵に変換しますか?

  1. UNIX/Linuxでシェルスクリプトを実行する4つの方法

  2. Unix シェルで数値の列を合計する

  3. MacOS のシェルスクリプトで DATE を UNIX TIMESTAMP に変換する方法

  1. ls 出力を csv に変換する

  2. TrueType グリフを PNG 画像に変換しますか?

  3. シェルで .txt を .csv に変換する