我正在使用canvas2image保存“合成”图像。它会在新窗口中打开,并且可以右键单击并保存。这很好用,所以我向运行IE的客户展示了它,但对他来说当然不起作用!
我已经在Stackoverflow上阅读了与此相关的所有内容,但是却一无所获。
我怎样才能让IE打开画布并保存呢?
这是我正在使用的脚本:
$('#save_image_locally').click(function(){
html2canvas($('#picture_frame'),
{
onrendered: function (canvas) {
var img = canvas.toDataURL("image/png");
alert('Your image will open in a new window. Please right click the image and save.');
window.open(img);
}
});
});
打开的新窗口是IE,但为空白。我还尝试在同一页上的div中打开画布,效果很好,但IE不会让我右键单击并保存?
知道了!非常感谢Karl和他在这里的帖子
解决方法是使用html2canvas.js,filesaver.js和canvas-toBlob.js进行兼容性填充。
对于像我这样需要更多信息的人:
下载上方的库,然后将其放在您的head标签内:
<script type="text/javascript" src="html2canvas.js"></script>
<script type="text/javascript" src="FileSaver.js"></script>
<script type="text/javascript" src="canvas-toBlob.js"></script>
然后,我设置了html:
<button id="save_image_locally">download img</button>
<div id="imagesave" style="height:200px; width:200px;">
<img id='local_image' src='http://www.example.com/Images/Example.jpg'>
</div>
最后是强制IE(和其他浏览器)将画布另存为图像的脚本:
<script>
$('#save_image_locally').click(function(){
html2canvas($('#imagesave'), {
onrendered: function(canvas) {
var img = canvas.toDataURL()
canvas.toBlob(function(blob) {
saveAs(blob, "savedcanvasimage.jpeg");
}, "image/jpeg");
}
});
});
</script>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句