通过python从mysql数据库检索base64图像

nzk0hqpo  于 2021-06-24  发布在  Mysql
关注(0)|答案(0)|浏览(276)

我会尽量简短。我有一个代码,可以在一天中的不同时间将数据发送到数据库。发送的一种数据是来自热敏相机的图像。这部分工作正常,将图像编码为base64,并以“longblob”数据类型将其发送到db。
现在,我正在制作一个脚本,从数据库中读入图像,但是我的代码将编码后的图像字符串作为整数读取。


# Audit to the database

with open("C:/Users/danie/Desktop/image7.png", "rb") as image:
        image_read = image.read() 
        Image =base64.b64encode(image_read) 

        sql = "INSERT INTO flirimage (Image) VALUES (%s)"
        arg=('Image')
        cursor.execute(sql % arg)
        db.commit()

现在读入数据并存储它:(如果你只是读入一个文件,这个代码就可以工作!!!)

import MySQLdb as mariadb
import base64

db = mariadb.connect(host="127.0.0.1", user="root", passwd="SECRET", 
db="SECRET")
cursor = db.cursor()

ImageEncoded=cursor.execute("select * from flirimage")
db.commit()

image_64_decode=base64.b64decode(ImageEncoded)

filename='C:/Users/danie/Desktop/image_audit.png'
with open(filename, 'wb') as f:
    f.write(image_64_decode)

 db.close()

运行代码时:

TypeError: argument should be a bytes-like object or ASCII string, not 'int'

ImageEncoded
Out[38]: 1

在我看来,base64字符串在db中的保存方式存在一些问题。但我可能错了。
编辑:
我想说明数据库中的数据是直接编码的。在运行第一个代码之后。我没有把整个base64字符串包含到这篇文章中,因为它非常长。。。。

Image
Out[42]: b'iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAAAAABQyaazAAAgAElEQVR4ARzB68.............................

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题