Python 为什么base64编码的png在svg中不可见?

Python 为什么base64编码的png在svg中不可见?,python,image,svg,png,base64,Python,Image,Svg,Png,Base64,我想将png转换为base64,并在svg中插入编码字符串 fIm = open('name.png', 'rb') dataIm = fIm.read().encode("base64").replace('\n','') baseIm += '<g id="%s"><image xlink:href="data:image/png;base64,%s" width="%s" height="%s"/></g>' % (newVal, dataIm, cur

我想将png转换为base64,并在svg中插入编码字符串

fIm = open('name.png', 'rb')
dataIm = fIm.read().encode("base64").replace('\n','')
baseIm += '<g id="%s"><image xlink:href="data:image/png;base64,%s" width="%s" height="%s"/></g>' % (newVal, dataIm, curX, curY)
fIm=open('name.png','rb')
dataIm=fIm.read().encode(“base64”).replace('\n','')
baseIm+=''(新值、数据IM、curX、curY)
结果图像不显示

有什么问题吗

以下是输出svg文件:

<?xml version='1.0' ?>
<svg viewBox='0 0 200 200' width='200' height='200' xmlns='http://www.w3.org/2000/svg'>
<defs><g  id="name">
<image xlink:href="data:image/png;base64,..." width='20' height='20'/>
</g></defs>
<use xlink:href="#name" x='30' y='30' />
</svg>

解决方案

fIm = open('switchToMinus.png', 'rb')
dataIm = fIm.read().encode("base64").replace('\n','')
addText = '<image xlink:href="data:image/png;base64,{0}" width="20" height="20" x="40" y="40" />'.format(dataIm)
startSvg = """<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="240px" height="240px" viewBox="0 0 240 240">
"""

endSvg = """
</svg>
"""

if __name__ == '__main__':
    f = open('image2.svg','w')
    f.write( startSvg + addText + endSvg )
    f.close()
    print 'Okay!'
fIm=open('switchToMinus.png','rb')
dataIm=fIm.read().encode(“base64”).replace('\n','')
addText=''.format(dataIm)
startSvg=“”
"""
endSvg=”“”
"""
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
f=open('image2.svg','w')
f、 写入(startSvg+addText+endSvg)
f、 关闭()
打印“好的!”

仅凭此代码很难区分。
标记和数据创建看起来基本正常——假设
curX
curY
是合理的值,并且它编码的是一个有效的.png文件——因此它看起来可能是其他东西,比如
标记的
宽度
高度
,或导致图像不显示的属性设置。请在您的问题中填写完整文件的内容。等等,我认为您缺少base64数据末尾的双引号,因此该部分应该是
谢谢,但它没有缺少双引号。您缺少的是
xmlns:xlink=”http://www.w3.org/1999/xlink“
在根元素上。是的,它是正确的。谢谢大家。