背景が透明なpngファイルのフォルダーがあります。コマンドラインからそれらを変換し、画像の透明な背景を維持したいと思います。
助けていただければ幸いです。
Jpgは透明度をサポートしていないので、出力jpgの背景色の16進値をどのように指定できますか?現在、デフォルトは#ffffff
?です。このスクリプトを試しましたが、出力jpgに白い背景が表示されます。
mogrify -quality 100 -format jpg *.png
更新
Inkscapeでこれらのpngファイルを作成しました。これらのpngをjpgに変換する私の目標は、円形またはangularオブジェクトのギザギザのエッジを取り除くことです。現在、PNGにはエッジがギザギザになっており、それらをJPGに変換するとこの問題が解決する場合があることを読みました。ただし、ChristianSkjødtの回答に記載されている方法で変換すると、画像のエッジがギザギザになります。 pngをjpgに変換し、アンチエイリアスまたは別の手法を使用してギザギザのエッジを取り除く方法はありますか?助けてくれてありがとう。
エッジを滑らかにするには、ターゲットサイズの10倍のPNGを作成し、アンチエイリアスを使用してJPGにサイズ変更します。 PythonとPython Imaging Libraryを使用してこれを効果的に実行しましたが、他のツールを使用してそれを行う方法がわかりません。
2番目の質問:
画像の変換時に背景色を指定するには、-fill
オプションを使用できます。
mogrify -quality 100 -format jpg -fill "#FF0000" -opaque none *.png
-background
を使用しても同様の結果が得られます。 -opaque none
を忘れないでください。
申し訳ありませんが、jpeg
フォーマットdoes n'tはalpha channel
をサポートしているため、透明性を確保できません。
画像で何をしようとしているかによって、アルファチャンネルを別のグレースケール画像またはビットマスクに配置することができ、画像を使用しているプログラムは半透明/透明な値として補助画像を適用します。最終的には、alpha pngをサポートするようにプログラムを変更する方が適切ですが。