在python中将base64编码的图像解码为原始图像

Posted

技术标签:

【中文标题】在python中将base64编码的图像解码为原始图像【英文标题】:decoding a base64 encoded image into the orignal image in python 【发布时间】:2018-11-22 16:16:10 【问题描述】:

我从远程数据库中提取了一个 base64 编码的图像字符串,并尝试使用 base64.decode() 对其进行解码,但输出图像已损坏(图像大小只有几个字节甚至 0 字节) 代码是:

import pymssql
import base64
import os

con=pymssql.connect(user='**',
                    password='**',
                    database='**',
                    host='**')

cur=con.cursor()
cur.execute("SELECT PHOTOGRAPH_IMG FROM IHHL_DETAIL_IMG WHERE APPLICATION_ID='**';")
result=cur.fetchall()  #tried fetchone() too
result=list(result)    #to save the tuple returned as a list
print result[0]        

cur.close()
con.close()

#I've tried various formats to decode, none work 
#fh=open("img.jpeg","wb")
#fh.write(result[0].decode('base64'))
with open("imageToSave.png", "wb") as fh:
fh.write(base64.decode(result[0]))
fh.close()

【问题讨论】:

只需将内容添加为一行,缩进4个空格。顺便说一句,您现在可能想发布一个实际问题,以避免被否决或关闭。 我试过了,结果每个问题的字符限制是30000个字符,我的二进制文件有更多字符,我现在该怎么办? 在我看来,即使将 10% 的数据发布到一个问题中,也太过分了。我们可能不需要您确切的二进制数据来帮助您。 好的,所以我将编辑这个问题并将我的代码与问题一起发布? 请发表您的问题。 SO 主要针对通用解决方案,而不是使用您的特定数据的答案。 【参考方案1】:

只需将其添加为“代码”

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

【讨论】:

以上是关于在python中将base64编码的图像解码为原始图像的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中将 Base64 字节数组解码为图像

如何在打字稿快递服务器中将字符串解码/编码为base64

将 Base64 字符串解码为字节数组

python 将图像编码/解码到Base64

base64解码文件不等于原始未编码文件

python:将base64编码的png图像转换为jpg