【问题标题】:Python, Sqlite - how to put an image stored (either as Blob or base64 string) in a sqlite DB on a tkinter LabelPython,Sqlite - 如何将存储的图像(作为 Blob 或 base64 字符串)放在 tkinter 标签上的 sqlite DB 中
【发布时间】:2017-06-18 02:16:24
【问题描述】:

我想这个问题可能会被指责为重复,但老实说,尽管在这里和那里摸索了很长时间,我还是找不到自己的路。

将图像作为 Blob 存储在 Sqlite DB 中很简单,但以适合我预期用途的方式进行反向操作(即检索该图像以便在标签) 不是。有一个不被接受的 guid here 我希望有人验证、解释和纠正它(例如,我可以在这一行中使用 str() 而不是 tostring() ?)

data = cStringIO.StringIO(results.tostring())

还有很多关于图像可以作为 base64 字符串存储在 DB 中的讨论。我认为这会使检索和显示过程更容易,可能会在存储时以额外的操作为代价(顺便说一下,我找不到任何关于如何做到这一点的具体指南)。

请用外行的话给出一些指示,将不胜感激。

【问题讨论】:

    标签: python sqlite tkinter


    【解决方案1】:

    您可以使用以下方法将其转换为 Image 对象,然后 tkinter 可以通过 base64 字符串中的标签(或其他地方)显示该对象。

    from PIL import Image
    import base64, io
    # Get the base64 string
    Image.open(io.BytesIO(base64.b64decode(data)))
    

    【讨论】:

    • 如果图像已经存储为 Blob 类型怎么办? Image.open(io.BytesIO(retrieved Blob field)) 会起作用吗?
    猜你喜欢
    • 2014-10-31
    • 2018-09-25
    • 2019-04-29
    • 2018-01-09
    • 1970-01-01
    • 2013-03-05
    • 2013-12-04
    • 2012-01-11
    • 1970-01-01
    相关资源
    最近更新 更多