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


10

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

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

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

mogrify -quality 100 -format jpg *.png

更新

私はこれらのpngファイルをinkscapeで作成しました。これらのpngをjpgに変換する私の目標は、円形または角のあるオブジェクトのギザギザのエッジを取り除くことです。現在、pngのエッジはギザギザしていますが、pngをjpgに変換するとこの問題が解決する可能性があることを読みました。ただし、ChristianSkjødtの回答で概説されている方法で変換すると、画像のギザギザのエッジがさらに悪くなります。pngをjpgに変換し、ギザギザのエッジを取り除くためにアンチエイリアスまたは他の手法を使用する方法はありますか?助けてくれてありがとう。


3
質問が常に変化する場合、質問に答えることは非常に困難です...将来の参考のために:最初から質問に達成したいことを含めてください。「アップデート2」について:「ギザギザ」は単に選択した解像度の結果ですか?解像度([ビットマップのエクスポート...]ダイアログのDPI番号)を上げるとどうなりますか?
Marcel Stimberg、2011

回答:


3

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


28

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

ことを注意JPEG 2000は本当に透明度をサポートしていないが、それはJPEG形式よりもはるかに少ない一般的です。これが実行可能な代替手段であるかどうかは、ユースケースによって異なります。


私は間違っているかもしれませんが、OPは、透明領域が作成される色を設定することを求めています。それらは白に作られていますが、例えばOPは青を使用できます。
nanofarad 2012年

16

2番目の質問:

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

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

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


ねえ、助けてくれてありがとう。このコマンドを使用して出力jpegをアンチエイリアスする方法はありますか?追加のコンテキストについては、上記の更新2を参照してください。ありがとう。
ジェームズ

4

申し訳ありませんが、jpeg形式サポートしていないため、alpha channel透明度を設定できません。


0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.