Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.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 如何将画布下载为png图像格式而不是二进制文件?_Javascript_Html5 Canvas - Fatal编程技术网

Javascript 如何将画布下载为png图像格式而不是二进制文件?

Javascript 如何将画布下载为png图像格式而不是二进制文件?,javascript,html5-canvas,Javascript,Html5 Canvas,我有一个数学编辑器,我在其中使用画布来编写方程或任何数学公式,我想将画布保存为图像,我能够将图像保存为二进制文件,我必须通过选择window photo viewer每次打开该文件,我只想将其保存为图像 到目前为止,为了保存图像,我使用了以下代码: var data = canv.toDataURL("image/png").replace("image/png", "image/octet-stream"); window.location.href = data; 将其保存在二进制文件中。

我有一个数学编辑器,我在其中使用画布来编写方程或任何数学公式,我想将画布保存为图像,我能够将图像保存为二进制文件,我必须通过选择window photo viewer每次打开该文件,我只想将其保存为图像

到目前为止,为了保存图像,我使用了以下代码:

var data = canv.toDataURL("image/png").replace("image/png", "image/octet-stream");
window.location.href = data;

将其保存在二进制文件中。

这将解决您的问题:

window.location = canv.toDataURL("image/png");
canv
作为画布对象。 您不需要将
image/png
替换为
image/octet-stream

       var dl = $doc.getElementById("preview");

            function dlCanvas() 
            {
                var divs=$doc.getElementById("yahoo");

                canv = divs.childNodes[0];

                   var dt = canv.toDataURL('image/png');
                   this.href = dt;
            };
            dl.addEventListener('click', dlCanvas, false);

预览是html页面上的锚定标记id。

为什么要替换
图像/png
?这不是你需要的输出吗?你的问题没有意义。你认为“二进制文件”是什么?为什么你需要一个?我的文件保存在一个我不能直接使用的文件格式中。如果我不替换它,图像将无法保存。我给你发了一个链接,希望你能理解我的问题。可能我对我的书面问题不清楚。请检查一下,也许你会更好地理解我的问题。我用我制作的自定义画布对象进行了尝试。我创建了一个带有矩形的画布,并尝试了代码。也许你的问题在别的地方。要将画布转换为PNG文件,只需使用
toDataURL(“image/PNG”)
,要打开PNG文件,需要使用
window.location
window.location.href