Używając PIL 1.1.7, redis-2.7.2 pip module i redis-2.4.10 udało mi się to uruchomić:
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()
Znalazłem, że Image.tostring
nie była niezawodna, więc ta metoda używa StringIO
aby łańcuch wyglądał jak plik. format=im.format
jest potrzebne, ponieważ StringIO
nie ma „rozszerzenia”. Następnie przetestowałem, czy dane obrazu zostały zapisane w porządku, wykonując:
redis-cli --raw get 'imagedata' >test.png
i zweryfikowanie, czy otrzymałem obraz.