【发布时间】:2013-05-22 19:35:59
【问题描述】:
我正在尝试从 sqlite 数据库中的行中获取 BLOB 类型信息并将它们保存到图片文件中。它们都是存储在 blob 中的 jpg 文件。当我尝试循环并从数据库 blob 创建我的 jpeg 文件时,我得到奇怪的损坏的 jpeg 文件,其中包含一些原始数据并显示图像,但也有很多失真。我认为这与从数据库处理数据的方式有关。无论如何,它是包含 blob 的第六列,这是我的代码...
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()
它将为每一行中的每个 blob 创建一个图像,准确地说是 902,并且图像实际上是可见的,即使是正确的图片,只是添加了一些严重的失真/损坏并且真的弄乱了图片?如何使用 Python 从数据库中的每个 blob jpg 文件创建未损坏的 jpg 图片文件?
谢谢!
【问题讨论】:
-
这不是一个好方法,但所有的 JPG 文件都以
\xFF\xD8开头并以\xFF\xD9结尾。你可以把里面的所有东西都拿进去,希望它是一个有效的 JPG 图片。 -
@GigaWatt yOyA :D 我曾经为 jpeg 制作了一个雕刻程序,它使用了类似的签名,非常有趣!感谢您的输入:)