要獲取圖像數據,請使用canvas上下文的getImageData()方法,然後從數據屬性中訪問像素數據。數據屬性中的每個像素都包含紅色,綠色,藍色和Alpha通道。所以,如果你沒有畫到畫布上你的形象,你可以再做
var imageData = context.getImageData(imageX, imageY, imageWidth, imageHeight);
var data = imageData.data;
然後,你可以從X挑出特定的像素數據和y座標,像這樣
// pick out pixel data from x, y coordinate
var x = 20;
var y = 20;
var red = data[((imageWidth * y) + x) * 4];
var green = data[((imageWidth * y) + x) * 4 + 1];
var blue = data[((imageWidth * y) + x) * 4 + 2];
var alpha = data[((imageWidth * y) + x) * 4 + 3];
你可以找到更多的信息如何使用畫布對圖像數據進行處理here。
希望有所幫助。
這只是大衛的方式嗎?我必須使用畫布? – Robinson
這是我能想到的最簡單的方法。您可以使用FileReader API來使用readAsArrayBuffer方法創建圖像文件的ArrayBuffer,該方法將讀取Blob或文件並生成固定長度的二進制數據緩衝區。但是,你必須建立自己的函數來將像素數據提取出緩衝區。畫布方法爲你做到這一點。 – DavidDomain
我不想走那麼遠,沒有。所以第二個畫布緩衝區是。 – Robinson