web-dev-qa-db-ja.com

背景色を設定しながら、.pngのフォルダーを.jpgに変換するにはどうすればよいですか?

背景が透明なpngファイルのフォルダーがあります。コマンドラインからそれらを変換し、画像の透明な背景を維持したいと思います。

助けていただければ幸いです。

Jpgは透明度をサポートしていないので、出力jpgの背景色の16進値をどのように指定できますか?現在、デフォルトは#ffffff?です。このスクリプトを試しましたが、出力jpgに白い背景が表示されます。

mogrify -quality 100 -format jpg *.png

更新

Inkscapeでこれらのpngファイルを作成しました。これらのpngをjpgに変換する私の目標は、円形またはangularオブジェクトのギザギザのエッジを取り除くことです。現在、PNGにはエッジがギザギザになっており、それらをJPGに変換するとこの問題が解決する場合があることを読みました。ただし、ChristianSkjødtの回答に記載されている方法で変換すると、画像のエッジがギザギザになります。 pngをjpgに変換し、アンチエイリアスまたは別の手法を使用してギザギザのエッジを取り除く方法はありますか?助けてくれてありがとう。

10
James

エッジを滑らかにするには、ターゲットサイズの10倍のPNGを作成し、アンチエイリアスを使用してJPGにサイズ変更します。 PythonとPython Imaging Libraryを使用してこれを効果的に実行しましたが、他のツールを使用してそれを行う方法がわかりません。

3
brousch

JPEG形式は透明度をサポートしていません。したがって、JPEG形式を使用する(または使用する必要がある)場合、透明な背景を維持することはできません。さまざまな画像形式の機能の概要については、 Wikipedia を参照してください。

JPEG 20 は透明度を実際にサポートしますが、JPEG形式ほど一般的ではありません。これが実行可能な代替手段であるかどうかは、ユースケースによって異なります。

28
Marcel Stimberg

2番目の質問:

画像の変換時に背景色を指定するには、-fillオプションを使用できます。

mogrify -quality 100 -format jpg -fill "#FF0000" -opaque none *.png

-backgroundを使用しても同様の結果が得られます。 -opaque noneを忘れないでください。

16

申し訳ありませんが、jpegフォーマットdoes n'talpha channelをサポートしているため、透明性を確保できません。

4
Mr Shunz

画像で何をしようとしているかによって、アルファチャンネルを別のグレースケール画像またはビットマスクに配置することができ、画像を使用しているプログラムは半透明/透明な値として補助画像を適用します。最終的には、alpha pngをサポートするようにプログラムを変更する方が適切ですが。

0
Lie Ryan