2013-05-22 2 views
0

Я пытаюсь взять информацию типа BLOB из строк в базе данных sqlite и сохранить их в файлах изображений. Все файлы jpg хранятся в блобе. Когда я пытаюсь выполнить петлю и создать свои jpeg-файлы из бластов базы данных, я получаю странные искаженные jpeg-файлы, которые имеют некоторые исходные данные и показывают изображение, но есть и много искажений. Я думаю, что он должен что-то сделать с тем, как данные обрабатываются из БД. В любом случае это столбец шесть, который содержит сгустки, вот мой код ...Поврежденная база данных SQLite jpegs?

import sqlite3 
cnt = 0 
con = None 
con = sqlite3.connect("C:\\my.db") 
cur = con.cursor() 
data = cur.execute("SELECT * FROM friends") 
for item in data: 
    cnt = cnt + 1 
    a = open("C:\\images\\"+str(cnt)+".jpg", 'w') 
    a.write(item[6]) 
    a.close() 

Это создаст изображение для каждого сгустка в каждой строке, 902, чтобы быть точным, и образы на самом деле являются видимыми, даже из правильная картина, только некоторые тяжелые искажения/коррупции были добавлены и действительно скрупулезно рисуют фотографии? Как я могу создавать jpg-файлы изображений из каждого jpg-файла blob в моей базе данных, используя Python, которые не повреждены?

Спасибо!

+1

Это не отличный метод, но все файлы JPG начинаются с '\ xFF \ xD8' и заканчиваются' \ xFF \ xD9'. Вы можете взять все в этом и надеяться, что это действительный образ JPG. –

+0

@GigaWatt yOyA: D Однажды я сделал программу вырезания для jpegs, которая отработала от подобных подписей, была довольно забавной! Спасибо за вход :) – 0xhughes

ответ

1

Запись файлов в двоичном режиме: open("C:\\images\\"+str(cnt)+".jpg", 'wb').

+0

Это сделало трюк! Голова странно проста. Благодаря! – 0xhughes

Смежные вопросы