code

python을 통해 MySQL 데이터베이스에서 Base64 이미지 검색

starcafe 2023. 9. 10. 12:25
반응형

python을 통해 MySQL 데이터베이스에서 Base64 이미지 검색

이것은 최대한 짧게 하겠습니다.저는 하루 중 다른 시간에 데이터를 데이터베이스로 전송하는 코드를 가지고 있습니다.전송되는 데이터의 한 종류는 열화상 카메라로부터의 이미지입니다.이 부분은 정상적으로 동작하며, 이미지를 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.............................

언급URL : https://stackoverflow.com/questions/51109303/retrieving-base64-image-from-mysql-database-via-python

반응형