2016-11-04 15 views
1

私のアプリケーションの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>

です。以下に示すように、私は単純にコードを変更:

<!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をするいくつかのプロパティを追加しますか? JavaScriptのImageDataで他のすべてと同様に

答えて

0

はあまりにもオブジェクトであり、今obj1.prop1 = val1と

の問題があるあなたは、JSのオブジェクトに新しいプロパティを追加することに注意してください可能性があるように、いくつかのランダムな値を追加するなぜあなたは尋ねるかもしれませんImageDataさんはあなたの画像を壊れませんでしたか?答えは簡単です:イメージのバイト表現は、ImageDataのdataプロパティにUint8ClampedArrayとして格納されています。画像データの

コンソール・ダンプ

Console dump of imageData

関連する問題