Redis
 sql >> Datenbank >  >> NoSQL >> Redis

So speichern Sie ein Bild mit Python / PIL in Redis

Mit PIL 1.1.7, Redis-2.7.2 Pip-Modul und Redis-2.4.10 konnte ich das zum Laufen bringen:

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()

Ich habe diese Image.tostring gefunden war nicht zuverlässig, daher verwendet diese Methode StringIO um einen String als Datei erscheinen zu lassen. Das format=im.format wird benötigt, weil StringIO hat keine "Erweiterung". Ich habe dann getestet, dass die Bilddaten in Ordnung gespeichert wurden, indem ich Folgendes mache:

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

und verifizieren, dass ich ein Bild zurückerhalten habe.