5
有沒有辦法使用圖像的getImageData沒有畫布?我想要在圖像的鼠標位置獲得像素顏色。HTML5 getImageData沒有畫布
有沒有辦法使用圖像的getImageData沒有畫布?我想要在圖像的鼠標位置獲得像素顏色。HTML5 getImageData沒有畫布
不,你不能。
但得到的imageData可以在內存中的畫布來完成,這是快速和容易:
var canvas = document.createElement('canvas');
var context = canvas.getContext('2d');
var img = document.getElementById('someImageId');
context.drawImage(img, 0, 0);
var theData = context.getImageData(0, 0, img.width, img.height);
你可以保持theData
變量,以便用戶不必在每次點擊來構建它。
請注意,如果圖像來自其他域(如果您使用file://
而不是http://
打開您的html文件,它將不起作用)。
有趣的是,他們有什麼理由阻止從另一個域獲取圖像的圖像數據? – Shmiddty
這是爲了防止XSS攻擊。閱讀[this](http://en.wikipedia.org/wiki/Cross-site_scripting)和[this](https://developer.mozilla.org/en-US/docs/HTTP_access_control)。 –
但嘗試檢索整數數組時可能發生什麼? – Shmiddty