この関数getImageDataは、<script>
の内部で作成した「コンテキスト」変数に使用しています。矩形を描画するときは、ctx.getImageData.dataを実行します。 [0]それは私がキャンバスに描いたその長方形の赤の値を表示します。しかし、イメージをインポートしてキャンバスに描画し、getImageData.data [0]を使用しようとすると0が返されますが、それは意味をなさないので、イメージが正しく読み取られない理由はわかりません。私はこれについてチュートリアルを試みましたが、それらはすべてあいまいであり、一緒に書かれたセグメントしか持っていません。getImageData関数の問題
矩形を描くと、その色の値がうまく出てきますが、キャンバスに矩形を描いていなくても画像を描くと、その特定のピクセルの値は決して画像に表示されません。
誰かが私を助けることができますか?ここに私の現在のコードがあります:
<html>
<head>
<title>
Color Test :)
</title>
</head>
<body>
<canvas id = "ColorTest" width = "500" height = "500">
please don't use shitty browsers :)
</canvas>
<script>
//netscape.security.PrivilegeManage…
var canvas = document.getElementById("ColorTest")
, ctx = canvas.getContext("2d")
, image = new Image()
image.onload = function(){
ctx.drawImage(image,0,0)
}
image.src = 'Pikachu.gif'
ctx.fillStyle = "rgb(123,40,170)"
ctx.fillRect(0,0,100,100)
var imagedata = ctx.getImageData(0,0,100,100)
, spot = 0
while(imagedata.data[spot] == 0){
spot++
}
console.log(imagedata.data[0])
</script>
</body>
</html>
これは1回しか動作していない可能性があります。 (少なくともローカルホストファイルシステム上で実行しているとき)エラーメッセージは 'Uncaught SecurityError: 'CanvasRenderingContext2D'の 'getImageData'を実行できませんでした:キャンバスはクロスオリジンデータによって汚染されています。 – zipzit