如何在imsave()(Agg后端)中设置PNG的压缩参数?

问题描述:

我想要禁用(或尽可能降低)plt.imsave()的压缩。我只想快速转储出即时反复使用的PNG图像。如何在imsave()(Agg后端)中设置PNG的压缩参数?

任何想法如何做到这一点?

(我用的是AGG后端)

从外观上来看,matplotlib's pyplot.imsave()不支持压缩选项。您应该使用Python Imaging Library,PIL

这里有一个如何使用Image.save()保存numpy的数组作为PNG一个小例子:

import numpy as np, Image as im 

img = im.fromarray(np.random.rand(640,480), mode='I') 
img.save('test.png', format='PNG', bits=8) 

PNG writer's options有不良记录,但事实上,它可以让你修改ZLIB编码字典,除其他事项外看起来很有希望。

+0

@ P.R .:有帮助吗? – fgb 2013-05-03 14:48:46

+1

不是真的,对不起。我最终用'tifffile'将图像保存为tiff。这是迄今为止最快的方式。 – 2013-05-13 16:37:09

+0

@ P.R .:至少你找到了'plt.imsave()'的替代品。我自己并不是PIL的粉丝,但它有时具有某些我在别处找不到的关键图像处理功能。 – fgb 2013-05-13 20:27:31