Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将svg转换为包含图像标记的png,以获得Base64_Javascript_Jquery_Svg - Fatal编程技术网

Javascript 将svg转换为包含图像标记的png,以获得Base64

Javascript 将svg转换为包含图像标记的png,以获得Base64,javascript,jquery,svg,Javascript,Jquery,Svg,我在使用将SVG生成为PNG时遇到了问题,为了获得Base64,我的演示是不可能的。有什么解决办法吗 或者可以将此data=“data:image/svg+xml;base64”+btoa(xml)转换为image/png;base64?基于此属性xlink:href显示为跨原点,这将导致错误 Uncaught SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not

我在使用
将SVG生成为PNG时遇到了问题,为了获得Base64,我的演示是不可能的。有什么解决办法吗


或者可以将此
data=“data:image/svg+xml;base64”+btoa(xml)
转换为
image/png;base64
?基于此

属性
xlink:href
显示为跨原点,这将导致错误

Uncaught SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement':
Tainted canvases may not be exported.
调用
canvas.toDataURL()
时返回


更新

尝试使用
XMLHttpRequest
请参阅

您还可以通过设置字符串“Blob”将二进制文件读取为Blob 到responseType属性

//创建'img'元素
var img=新图像;
img.width=100;
img.高度=100;
//完成后记录
img.onload=函数(){
//请参见此处的'src'`
console.log(this.complete,this);
};
//使用`svg``图像`xlink:href设置`request`的`url``
var link=document.querySelectorAll(“svg”)[0]
.children[0]。属性
.getNamedItem(“xlink:href”).value;
var request=new XMLHttpRequest();
request.responseType=“blob”;
打开(“获取”,链接,为真);
request.onload=函数(e){
var blob=this.response;
var reader=new FileReader();
reader.onload=函数(e){
//请求图像的“数据URI”
console.log(如target.result);
//将'img``src`设置为'e.target.result`:`数据URI`
img.src=e.target.result;
//在“svg”旁边追加“img”`
文件.正文.附件(img);
};
reader.readAsDataURL(blob);
};
//日志错误
request.onerror=函数(e){
控制台日志(e);
};
request.send()


您似乎没有在javascript页面中使用SVG(我在任何地方都看不到
testimg1
)。svgOh上有它的
id=“asd”
,我想我是瞎了:)看到了吗?我无法在它上面找到Base64。给我空的image@fsi看到了吗?因为这个错误,我基本上看不到图像(base64)?@fsi-See-updated-post;利用
XMLHttpRequest
请求图像为
Blob
FileReader()
Blob
响应转换为
数据URI