7

私はmatplotlibを使用してプロットを作成し、それをmatplotlib.pyplot.savefigを使用してPNGファイルに保存しています。

すべて正常に動作しますが、ファイルサイズはかなり大きくなります(約120Kb)。

後で(シェルを介して)ImageMagikを使用して、色の数を減らし、ディザをオフにすることで、品質を損なうことなくファイルサイズを38Kbに減らすことができます。

convert +dither -colors 256 orig.png new.png

私の質問は:matplotlib内でこれを行うことができますか?ドキュメントを検索しましたが、保存時に使用する色数の設定などに関連するものが見つかりません。

ありがとう!

4

3 に答える 3

9

これは、PIL(現在はPillow)を介してmatplotlibイメージを実行するために行うことです。

import cStringIO
import matplotlib.pyplot as plt
from PIL import Image

..。

ram = cStringIO.StringIO()
plt.savefig(ram, format='png')
ram.seek(0)
im = Image.open(ram)
im2 = im.convert('RGB').convert('P', palette=Image.ADAPTIVE)
im2.save( filename , format='PNG')
于 2013-06-17T17:23:43.243 に答える
2

dpi=kwargをsavefig()に渡すことができます。これは、ファイルサイズを減らすのに役立つ可能性があります(後でグラフで何をしたいかによって異なります)。それができない場合、Python Imaging Library(http://www.pythonware.com/products/pil/)はほぼ確実にあなたが望むことを実行すると思います。

于 2012-05-28T12:46:47.953 に答える
1

matplotlib内でこれを行うことについてはわかりませんが、ファイルをディスクに書き込んだ後は、PythonMagickを使用していつでも行うことができます。

于 2012-05-28T12:45:28.080 に答える