Met behulp van PIL 1.1.7, redis-2.7.2 pip-module en redis-2.4.10 kon ik dit werkend krijgen:
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()
Ik vond dat Image.tostring
was niet betrouwbaar, dus deze methode gebruikt StringIO
om een string te laten lijken op een bestand. De format=im.format
is nodig omdat StringIO
heeft geen "extensie". Ik heb toen getest of de afbeeldingsgegevens goed waren opgeslagen door te doen:
redis-cli --raw get 'imagedata' >test.png
en controleren of ik een afbeelding heb teruggekregen.