5
保存图像时,我使用此代码将图像保存在Javascript:缺少扩展从帆布
window.location.href = grid.toDataURL("image/png").replace("image/png", "image/octet-stream");
代码工作,但保存没有任何扩展名的文件,我必须手动进行重命名。
我的问题是如何将扩展名放在最后?
谢谢。
保存图像时,我使用此代码将图像保存在Javascript:缺少扩展从帆布
window.location.href = grid.toDataURL("image/png").replace("image/png", "image/octet-stream");
代码工作,但保存没有任何扩展名的文件,我必须手动进行重命名。
我的问题是如何将扩展名放在最后?
谢谢。
toDataURL
产生一个data-uri而不是文件名,所以在这种情况下扩展名不适用。
data-uri只是一些二进制内容的文本编码版本,某些浏览器可以将其作为文件读取 - 数据流如果您愿意的话。由于数据流没有任何文件名,因此无法附加文件名。
您可以解决此通过设置锚标记是这样的:
<a id="imageLink" href="data-uri-here" download="myFilename.png">
Click to download
</a>
在JavaScript中,您可以设置这些属性动态:
imageLink.href = grid.toDataURL();
imageLink.download = 'myOtherFilename.png';
非常酷的东西!谢谢;)有没有其他的方式来产生这个,而不是在HTML中声明链接?我用我的按钮dat-gui库,我不知道如何创建下载attr。 – mickaelb91
@ mickaelb91当然,您可以简单地在JavaScript中创建标签。还有自动触发点击的选项。检查出来:http://stackoverflow.com/questions/18480474/how-to-save-an-image-from-canvas/18480879#18480879 – K3N