【问题标题】:Corrupted SQLite Database jpegs?损坏的 SQLite 数据库 jpeg?
【发布时间】: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 制作了一个雕刻程序,它使用了类似的签名,非常有趣!感谢您的输入:)

标签: python sqlite blob


【解决方案1】:

以二进制模式写入文件:open("C:\\images\\"+str(cnt)+".jpg", 'wb').

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-29
    • 1970-01-01
    • 2014-03-17
    • 1970-01-01
    相关资源
    最近更新 更多