如何在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编码字典,除其他事项外看起来很有希望。
@ P.R .:有帮助吗? – fgb 2013-05-03 14:48:46
不是真的,对不起。我最终用'tifffile'将图像保存为tiff。这是迄今为止最快的方式。 – 2013-05-13 16:37:09
@ P.R .:至少你找到了'plt.imsave()'的替代品。我自己并不是PIL的粉丝,但它有时具有某些我在别处找不到的关键图像处理功能。 – fgb 2013-05-13 20:27:31