我有一个画布,正在向其绘制一些东西,然后将其保存到图像中。我这样做很成功,但是我得到的图像路径像data32一样很奇怪。是否可以将该网址转换为人类可读的网址?
function convertCanvasToImage(canvas) {
var image = document.getElementById("postcar_image");
image.src = canvas.toDataURL("image/png"); // here I am getting an encoded string of the image, what I want is to decode it on client side
return image;
}
返回的字符串是所谓的data-URI scheme。它确实包含编码为base-64且带有标头(data:...
)的图像,该图像可以用作图片src等的uri。该字符串是人类可读的URL,因为您可以获取二进制数据。
您可以将该data-uri直接作为图像源传递(也可以将该字符串粘贴到地址栏中进行测试):
var myImage = new Image;
myImage.src = canvas.toDataURL();
这是使用本机方法从画布获取图像的唯一方法。
如果要隔离二进制数据可以切断该URI来获取图像数据本身的标题-任何之后的..base64,
本身编码为基64的图像文件。
尽管您可以手动将base-64数据解码,但原始图像文件数据本身并不是那么有用,尽管您可以将数据作为Blob加载回去,但这在这种情况下是没有意义的。
使用data-uri的目的是能够使用JavaScript处理二进制图像以及与服务器通信而不会遇到编码问题,因为所有数据都在(人类)可读的ASCII范围内。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句