Javascript 如何将html5画布图像转换为json对象?
您好,我必须将一组图像转换为json对象。但是,作为第一步,我尝试对单个图像进行转换,但我不知道json对象是否已创建。请帮助我检查对象是否已创建。 代码如下:Javascript 如何将html5画布图像转换为json对象?,javascript,html,canvas,html5-canvas,Javascript,Html,Canvas,Html5 Canvas,您好,我必须将一组图像转换为json对象。但是,作为第一步,我尝试对单个图像进行转换,但我不知道json对象是否已创建。请帮助我检查对象是否已创建。 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset=utf-8 /> <title>HTML5 Example: Canvas</title> <script> fu
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset=utf-8 />
<title>HTML5 Example: Canvas</title>
<script>
function drawOnCanvas() {
var ctx=document.getElementById("mycanvas").getContext('2d');
var image=new Image();
image.src="2000.png";
image.onload=function() {
ctx.drawImage(image,140,0);
}
imageData = ctx.getImageData(0, 0, mycanvas.width, mycanvas.height);
var jsontext=JSON.stringify(imageData.data);
}
window.addEventListener('load', drawOnCanvas, true);
</script>
</head>
<body>
<canvas width="1000" height="1000" id="mycanvas"></canvas>
</body>
</html>
HTML5示例:画布
函数drawOnCanvas(){
var ctx=document.getElementById(“mycanvas”).getContext(“2d”);
var image=新图像();
image.src=“2000.png”;
image.onload=function(){
ctx.drawImage(图像,140,0);
}
imageData=ctx.getImageData(0,0,mycanvas.width,mycanvas.height);
var jsontext=JSON.stringify(imageData.data);
}
window.addEventListener('load',drawOnCanvas,true);
var canvas=document.getElementById(“canvas”);
var ctx=canvas.getContext(“2d”);
ctx.beginPath();
ctx.rect(5,5300250);
ctx.stroke();
ctx.arc(150150100,0,Math.PI,false);
ctx.stroke();
canvas.addEventListener(“单击”,函数(){
var data=ctx.getImageData(0,0,canvas.width,canvas.height);
控制台日志(数据);
log(JSON.stringify(data));
var c2=document.getElementById(“c2”);
var ctx2=c2.getContext(“2d”);
ctx2.putImageData(数据,0,0);
},假);
演示:
getImageData()将返回一个对象
stringify(数据)将为您生成JSON字符串(请参见控制台)。。。你为什么要提到JSON?这是一个有效的问题。我们如何从
画布ImageData
中获取字符串?感谢您的回复,但我没有获得第二张图像,我不知道您为什么单击第一张图像。事件侦听器将在第一个画布中获取数据,并将其呈现给第二个CanvasHanks这是一个不错的解决方案,但它会生成真正的大JSON,在我的例子中,对于一个640x480px大小的画布,它会生成13mb的JSON,只有一个红色圆圈。因此,对于这里的一些人来说,可以选择将图形的参数手动保存在JSON中,然后在另一个客户端上发送并重新绘制。
<canvas id="canvas" width="400" height="400">
</canvas>
<canvas id="c2" width="400" height="400"></canvas>
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
ctx.beginPath();
ctx.rect(5, 5, 300, 250);
ctx.stroke();
ctx.arc(150, 150, 100, 0, Math.PI, false);
ctx.stroke();
canvas.addEventListener("click", function (){
var data = ctx.getImageData(0, 0, canvas.width, canvas.height);
console.log(data);
console.log(JSON.stringify(data));
var c2 = document.getElementById("c2");
var ctx2 = c2.getContext("2d");
ctx2.putImageData(data, 0, 0);
}, false);