我正在尝试使用以下代码将PNG图像编码为Base64:
for files in os.listdir("."):
if files.endswith(".png"):
pngFile = open(files, 'rb')
base64data = pngFile.read().encode('base64').replace('\n','')
base64String = '<image xlink:href="data:image/png;base64,{0}" width="240" height="240" x="0" y="0" />'.format(base64data)
但是当我使用它时会出错:
AttributeError: 'bytes' object has no attribute 'encode'
我尝试了很多像这样的解决方案: AttributeError: 'bytes' object has no attribute 'encode'; base64 encode a pdf file但它只会引发另一个错误。顺便说一下,我正在使用python 3
答案 0 :(得分:1)
嗯...我不知道是否应该将此标记为答案,但是我使用Python 2.7使其正常工作。原因不明。
答案 1 :(得分:0)
尝试使用base64库
import base64
with open(files, "rb") as image_file:
base64data = base64.b64encode(image_file.read())
base64String = '<image xlink:href="data:image/png;base64,{0}" width="240" height="240" x="0" y="0" />'.format(base64data)