所以,我在<script>
部分內部製作的「context」變量上使用了該函數的getImageData,並且當我執行諸如繪製矩形之類的東西時,請執行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>
這可能曾經工作過一次,但唉,不再。 (至少在本地主機文件系統上運行時)。錯誤消息是'Uncaught SecurityError:'CanvasRenderingContext2D'上執行'getImageData'失敗:畫布已被交叉源數據污染。 – zipzit