2016-04-20 5 views
-1

Я следил за instructions found on SO, чтобы загрузить изображения в sqlites, я не смог экспортировать данные из sqlite3 в jpeg-изображения.PIL image to sqlite3 blob and reverse?

Вы можете помочь мне решить эту проблему?

здесь путь я подготовить изображение:

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) 

Я могу сохранить PIL изображение, чтобы проверить его:

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

, а затем сохранить изображение, как показано в приведенном выше решении:

# storing images into sqlite3 database 
con = sqlite3.connect("test.db") 
cur = con.cursor() 
cur.execute("create table img (x blob)") 
cur.execute("insert into img(x) values(?)", [ buffer(image.tostring())]) 
con.commit() 
cur.close() 
con.close() 

Я не могу найти, как цикл по таблице записывает и экспортирует blob как отдельные файлы jpeg.

С наилучшими пожеланиями

+0

Почему вы хотите сделать всю эту тяжелую работу, чтобы придумать неэффективную систему? Это намного проще и эффективнее сохранять изображения в файловой системе. – e4c5

+0

во время фазы сбора данных (изображение, gps, другие датчики на малиновой PI). Я думал, что было бы лучше иметь все данные вместе, а затем просто загрузить 1 файл базы данных для обработки на другом компьютере. – guimicmoc

ответ

0

Сохранить изображение в BytesIO объекта (аналогично тому, как вы захватываете изображение):

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

Получить bytes объект, содержащий закодированное изображение:

imagebytes = stream.getvalue() 

Затем вставьте этот объект bytes в качестве параметра запроса в запрос:

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

привет, я думаю, что часть его скрипта подходит для меня. мне интересно, как я могу экспортировать изображения в виде jpeg-файлов из blob, хранящихся в sqlite db. – guimicmoc