14

ImageMagick はかなり大きな PNG を作成します。GraphicsMagick の方がはるかに優れていますが、convert で使用して最小のファイルサイズの png を取得するための最良のオプションを探しています。

ここに小さなファイルサイズの大きな png があり、これを IM convert に渡すと、そのファイルサイズに達することができず、ましてや小さくすることができませんでした。GM 変換を使用すると、少し小さくすることができますが、一般的には、遭遇するすべての画像の改善を探しています。

gm convert -quality 95 a_png.png gm.png
convert -quality 95 -depth 8 a_png.png im.png
gm identify *

a_png.png PNG 2560x2048+0+0 PseudoClass 256c 8-bit 60.1K 0.000u 0:01
gm.png[1] PNG 2560x2048+0+0 PseudoClass 256c 8-bit 60.0K 0.000u 0:01
im.png[2] PNG 2560x2048+0+0 DirectClass 8-bit 130.2K 0.000u 0:01 

最小の PNG ファイルサイズを生成する convert のオプションはどれですか?

(はい、私は OptiPNG、PNGOUT、および Pngcrush に精通しています。しかし、たまたま使用しているすべての *nix ボックスで疑いなく利用できるものを求めています。)

4

3 に答える 3

13

あなたと私は同じ答えを探しているようです。残念ながら、GraphicsMagick について十分な知識を持っている人は多くないようです。これは私がこれまでに学んだことです。

品質演算子は、JPEG 以外の画像では適切に機能しません。私にとっては、PNG や GIF で使用するとファイル サイズが大きくなっただけです。

サイズを縮小するために、PNG ファイルと GIF ファイルに対してこれを実行しました。

gm convert myImage.png +dither -depth 8 -colors 50 myImage.png
  • +dither色を減らすときに画像のディザリングを停止します。(これによりファイルサイズが小さくなります)

  • -depth 8ほとんどのPNGファイルはすでに深度8であるため、おそらく不要です。

  • -colors 50画像の色数を 50 に減らします。これは、PNG や GIF などのロスレス形式で保存された画像のサイズを実際に縮小する唯一の方法です。

明らかに、最高の画質/サイズ比を得るには、現在の深度と色数を知らずに画像の深度または色数を減らすことはできません。この情報を特定するために、私は次のことを行っています

gm identify -format "file_size:%b,unique_colors:%k,bit_depth:%q" myImage.png

私のイメージのために; これは戻ります

file_size:100.7k,unique_colors:13455,bit_depth:8

問題は、GraphicsMagick が色を常に少なくとも 255 に減らす場合、たとえば色の数を 300 に設定できないことです。また、PNG ファイルのアルファ チャンネルにも問題があるようです。画像に透明度がある場合、色を減らすとこれらの色が透明に置き換えられます。imagemagick では、これは行われません。

于 2010-11-24T12:43:21.460 に答える