2016-11-04 6 views
1

내 응용 프로그램 중 하나에서 ImageData로 캔버스에 그림을 읽고 있습니다. 샘플 코드는 내가 여러 가지 다른 API에 같은 imageData의를 통과하고 각 imageData의 차별화하기 위해 이러한 다른 API를 고유 ID가 필요 HTML ImageData에 새 속성을 추가하는 방법은 무엇입니까?

<!DOCTYPE html> 
 
<html> 
 
<body> 
 

 
<canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;"> 
 
Your browser does not support the HTML5 canvas tag.</canvas> 
 

 
<script> 
 

 
var c = document.getElementById("myCanvas"); 
 
var ctx = c.getContext("2d"); 
 
var imgData = ctx.createImageData(100, 100); 
 

 
var i; 
 
for (i = 0; i < imgData.data.length; i += 4) { 
 
    imgData.data[i+0] = 255; 
 
    imgData.data[i+1] = 0; 
 
    imgData.data[i+2] = 0; 
 
    imgData.data[i+3] = 255; 
 
} 
 

 
ctx.putImageData(imgData, 10, 10); 
 

 
</script> 
 

 
<p><strong>Note:</strong> The canvas tag is not supported in Internet 
 
Explorer 8 and earlier versions.</p> 
 

 
</body> 
 
</html>

입니다. - imageData의 일부 속성의 추가

<!DOCTYPE html> 
 
<html> 
 
<body> 
 

 
<canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;"> 
 
Your browser does not support the HTML5 canvas tag.</canvas> 
 

 
<script> 
 

 
var c = document.getElementById("myCanvas"); 
 
var ctx = c.getContext("2d"); 
 
var imgData = ctx.createImageData(100, 100); 
 

 
var i; 
 
for (i = 0; i < imgData.data.length; i += 4) { 
 
    imgData.data[i+0] = 255; 
 
    imgData.data[i+1] = 0; 
 
    imgData.data[i+2] = 0; 
 
    imgData.data[i+3] = 255; 
 
} 
 

 
ctx.putImageData(imgData, 10, 10); 
 
imgData.id = 21323; 
 
alert("imgData.id --"+imgData.id); 
 
imgData.picType = "Rect"; 
 
alert("imgData.picType --"+imgData.picType); 
 
</script> 
 

 
<p><strong>Note:</strong> The canvas tag is not supported in Internet 
 
Explorer 8 and earlier versions.</p> 
 

 
</body> 
 
</html>

가 나는 그것이 어떻게 작동하는지 알고 궁금 : 아래와 같이 그래서, 나는 단순히 코드를 수정? 자바 스크립트 ImageData에서 다른 모든 것들처럼

답변

0

도 객체이며, 지금 obj1.prop1 = val1과

의 문제는 당신이 JS에서 개체에 새 속성을 추가 인식 될 수도로 어떤 임의의 값을 추가하는 이유를 요청할 수도 있습니다 ImageData 이미지가 손상되지 않았습니까? 대답은 간단합니다. 이미지의 바이트 표현은 ImageData의 data 속성에 Uint8ClampedArray으로 저장됩니다. imageData의의

콘솔 덤프

Console dump of imageData