将 DataURL img 拖到火狐浏览器的桌面上,或制作真正的 png
Drag DataURL img to desktop in Firefox, or make real png
我有这个函数将画布内容转换为PNG数据。
function saveImage()
{
var img = canvas.toDataURL("image/png");
var imgWin = window.open('','', 'width=880, height=720');
imgWin.document.write('<!doctype html><html><head></head>' +
'<body> <img src="' + img +'" alt=""/> </body> </html>');
}
就像一个魅力,把 png 放在屏幕上,就像它应该的那样。现在,我可以轻松地将其拖放到Chrome中的桌面上。
但是对于 Firefox,我最终会得到一个链接,而在 IE 中(我并不真正关心支持我构建的应用程序),它根本不会拖沓。
我知道这与浏览器如何处理DataURL有关。但是有没有办法将此 DataURL-png 转换为真实图像,该图像保存到缓存或其他我可以读取它的地方?
所以这个
var img = canvas.toDataURL("image/png");
<img src="' + img +'" alt=""/>
将变成这样的东西:
var img = canvas.toDataURL("image/png");
img.goNinjaAndTurnIntoRealPng()
<img src="../local/img.png" alt=""/>
只有当您将图像数据发送到服务器并将其保存在那里(以便获得类似 "../local/img.png"
的路径)时,您的goNinjaAndTurnIntoRealPng()
方法才有效 - 取决于您的应用程序是否有意义。
如果只想让用户直接将画布下载为 PNG,则可以按如下方式触发图像下载。就个人而言,我更喜欢这种方法,因为用户不必手动单击"另存为" - 它更有用。
<canvas id="canvas" width="880" height="720"></canvas><br>
<!-- Note the "download" attribute here that specifies a filename -->
<a download="canvas_image.png" id="click">Save PNG image</a>
<script>
var canvas = document.getElementById("canvas");
document.getElementById("click").onclick = function(){
this.href = canvas.toDataURL("image/png");
};
</script>
演示 (JSFiddle)(在Firefox和Chrome中测试)
另请参阅此问题,其中提供了更多信息。
相关文章:
- 从桌面读取python文件时高亮显示代码
- 使用图像数组列表的simplegallary.js显示适合桌面屏幕的图像
- 如何在Edge中下载图像/png数据URI
- YouTube作为弹出窗口在桌面版本上播放,但不在移动设备上播放
- 如何在plnkr.co上显示桌面上的图像
- 如何使用javascript检测触摸设备浏览器与桌面
- 如何通过ajax将png图片从服务器发送到浏览器中显示
- 提供“;onClick"适用于iPad(触摸屏)和桌面用户的默认功能
- 展开移动设备上的折叠菜单,同时在桌面上保持悬停
- 将SVG下载为PNG图像
- 将桌面上的悬停导航栏转换为触摸屏上的可点击导航栏
- 在JavaScript Windows 8应用程序中设置桌面壁纸
- 如何在jquery、javascript、HTML5中以base64字符串保存为(PDF、doc、xls、png.)
- three.js:如何让透明的png精灵投射和接收阴影
- PNG图像被覆盖,但每个图像都有一个链接可以更改,每次一个-Javascript/jQuery/CSS
- 如何制作链接到网页特定元素的桌面快捷方式
- 在fabric.js中以PNG格式下载Canvas,给出网络错误
- Node.js库,用于生成索引PNG
- ng文件上传获胜't将jpg图像转换为png
- 创建nw.js+流星桌面应用程序