如何使用python / PIL将图像存储到redis

我正在使用python和图像模块(PIL)处理图像。

我想将图像对象的原始位流存储到redis,以便其他人可以使用nginx和httpredis直接从redis读取图像。

因此,我的问题是如何获取Image对象的原始位并将其存储到Redis中。

回答:

使用PIL 1.1.7,redis-2.7.2 pip模块和redis-2.4.10,我可以使它工作:

import Image

import redis

import StringIO

output = StringIO.StringIO()

im = Image.open("/home/cwgem/Pictures/portrait.png")

im.save(output, format=im.format)

r = redis.StrictRedis(host='localhost')

r.set('imagedata', output.getvalue())

output.close()

我发现这Image.tostring是不可靠的,因此此方法用于StringIO使字符串看起来像是文件。该format=im.format是必要的,因为StringIO没有一个“扩展”。然后,我通过执行以下操作测试了图像数据是否已保存:

redis-cli --raw get 'imagedata' >test.png

并确认我得到了图像。

以上是 如何使用python / PIL将图像存储到redis 的全部内容, 来源链接: utcz.com/qa/425308.html

回到顶部