如何通过webpy将numpy数组输出为图像?

时间:2014-07-18 22:18:40

标签: python image numpy scipy

我正在尝试遵循文档here,但是当我执行以下操作时:

web.header('Content-type', 'image/png')
buf = StringIO.StringIO()
scipy.misc.imsave(buf, my_numpy_data, format='png')
return buf.getvalue()

我收到以下错误:

TypeError: imsave() got an unexpected keyword argument 'format'

格式参数的有效值是什么?我尝试过' png',' PNG',' image / png'。还有另一种简单的方法可以从numpy数组中做同样的事情吗?

1 个答案:

答案 0 :(得分:0)

我终于通过使用PIL中的Image对象解决了这个问题。我使用了一个小函数来转换:

def array2PIL(data):
  mode = 'RGB'
  size = data.shape[1],data.shape[0]
  return Image.frombuffer(mode, size, data.tostring(), 'raw', mode, 0, 1)

然后像这样使用它:

web.header('Content-type', 'image/png')
buf = StringIO.StringIO()
img = array2PIL(my_numpy_data)
img.save(buf,format='PNG')
return buf.getvalue()