2016-04-20 13 views
-1

Ich folgte instructions found on SO, um Bilder in sqlites zu laden. Ich konnte die Daten von sqlite3 nicht in JPEG-Bilder exportieren.PIL Bild zu sqlite3 Blob und umgekehrt?

können Sie mir helfen, dies zu lösen?

hier ist die Art, wie ich das Bild vor:

import io 
import sqlite3 
import picamera 
from PIL import Image 

# Create the in-memory stream 
stream = io.BytesIO() 
with picamera.PiCamera() as camera: 
    camera.rotation = 180 
    camera.capture(stream, format='jpeg') 
# "Rewind" the stream to the beginning so we can read its content 
stream.seek(0) 
image = Image.open(stream) 

ich das PIL Bild speichern kann es zu überprüfen:

image.save("out.jpg", "JPEG", quality=100, optimize=True, progressive=True) 

und speichern Sie dann das Bild als zeigen in der obigen Lösung:

Ich kann nicht finden, wie Schleife über die Tabelle Aufzeichnungen und das Blob als einzelne JPEG-Dateien exportiert.

Mit freundlichen Grüßen

+0

Warum möchten Sie all diese harte Arbeit machen, um ein ineffizientes System zu entwickeln? Es ist so viel einfacher und leistungsfähiger, Bilder im Dateisystem zu speichern. – e4c5

+0

während der Datenerfassungsphase (Bild, GPS, andere Sensoren auf einem Raspberry PI) Ich dachte, es könnte schöner sein, alle Daten zusammen zu haben und dann nur 1 Datenbankdatei für die Verarbeitung auf einem anderen Computer herunterladen. – guimicmoc

Antwort

0

Speichern Sie Ihr Bild mit einem BytesIO Objekt (ähnlich wie Sie Ihr Bild aufnimmst):

stream = io.BytesIO() 
image.save(stream, format="JPEG") 

das bytes Objekt Holen Sie sich das kodierte Bild enthält:

imagebytes = stream.getvalue() 

Dann fügen Sie das Objekt bytes als Abfrageparameter in eine Abfrage ein:

mydb.execute("INSERT INTO images VALUES (?, ?)", (imagename, imagebytes)) 
+0

Hallo ich denke, dass Teil des Skripts für mich in Ordnung ist. Ich frage mich, wie ich Bilder als JPEG-Dateien aus Blob in einer SQLite db gespeichert exportieren kann. – guimicmoc