Med PIL 1.1.7, redis-2.7.2 pip-modul och redis-2.4.10 kunde jag få det här att fungera:
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()
Jag hittade den där Image.tostring
var inte tillförlitlig, så den här metoden använder StringIO
för att få en sträng att se ut som en fil. format=im.format
behövs eftersom StringIO
har inte en "förlängning". Jag testade sedan att bilddata sparades okej genom att göra:
redis-cli --raw get 'imagedata' >test.png
och verifiera att jag fick tillbaka en bild.