Python中Base64图片字符串解码及输出异常问题咨询
解决Base64解码后保存为图片的问题
嘿,你已经离成功只差一步啦!你现在看到的b"m\x88\xac\xdd..."其实是图片的原始二进制字节数据,base64.b64decode()返回的就是这个,这完全正常,不是错误——你只是还没把这些字节写成实际的图片文件而已。
下面是具体的解决步骤和修正后的代码:
第一步:清理你的Base64字符串
注意你的coded_string开头有个b=,这部分不是Base64编码的内容,得先去掉,只保留后面从Yis3dAX8...到末尾==的有效编码部分。
第二步:将解码后的字节写入文件
用二进制写入模式(wb)把字节数据保存成图片文件,文件名要对应原图片的格式(比如.png、.jpg)。
完整代码示例
import base64 # 清理后的纯Base64编码字符串 coded_string = '''Yis3dAX8CR9.........(ends with ==)''' # 解码得到图片二进制数据 image_bytes = base64.b64decode(coded_string) # 写入文件,这里假设原图片是PNG格式,可根据实际情况改成.jpg等 with open('decoded_image.png', 'wb') as image_file: image_file.write(image_bytes)
关键注意点
- 一定要用
'wb'模式写入:图片是二进制文件,用文本模式('w')会破坏数据,导致图片无法打开。 - 确认图片格式:如果保存后打不开,试试换个后缀(比如从
.png改成.jpg),可能是你对原图片格式判断错了。 - 检查Base64完整性:确保你的编码字符串没有被截断、添加多余字符,否则解码出的字节数据会损坏。
运行完代码后,你就能在脚本所在目录找到decoded_image.png(或你指定的文件名),打开它就是你要的目标图片啦!
内容的提问来源于stack exchange,提问作者Rucha
相关产品推荐
相关产品推荐

