2016-04-27 19 views
3

Ich versuche zu finden, wenn ein Pixel schwarz ist oder nicht auf einer LeinwandÜberprüfen Sie, ob Pixel schwarz auf HTML5 Canvas ist

var check = function(player,keyPressed) { 
//series of ifs to determine what pixel to check. 
    } 

ich brauchen würde, entweder wahr oder falsch zurück, wenn das Pixel falsch ist Ich habe versucht, GetImageData, aber ich war nicht in der Lage, herauszufinden, wie man es richtig verwendet.

+0

einen Blick auf diese Fragen nehmen: http: // Stackoverflow .com/questions/6735470/get-pixel-color-from-canvas-auf-mouseover http: // stackover flow.com/questions/667045/getpixel-from-html-canvas –

+1

getImageData ist ein Array der Pixel, 4 Bytes für jedes Pixel (r, g, b, a). Sie können einfach die Pixel durchlaufen oder aus den x, y Koordinaten herausfinden, welche Sie benötigen und in den ersten drei Werten nach 0 abfragen. – ManoDestra

Antwort

4
var canvas= document.getElementById('myCanv'); 
var pixelData = canvas.getContext('2d').getImageData(event.clientX, event.clientY, 1, 1).data; 

Das ist es !!

Natürlich, dass Angenommen, Sie haben:

<canvas id="myCanv"></canvas> 

FIDDLE

Dann:

function isBlack(dataPixel){ 
    if(dataPixel[0]==dataPixel[1] && dataPixel[1]==dataPixel[2] && dataPixel[2]===0){ 
     return true 
    } 
} 

http://jsfiddle.net/abdennour/4kdLfooj/11/

+1

Dann überprüfe ich einfach die Werte im pixelData-Array, um zu sehen, ob sie für die Farbe schwarz sind? – MickDom

+2

Natürlich muss er die zurückgesendeten Daten immer noch abfragen, um zu überprüfen, ob sie schwarz sind. – ManoDestra

+0

Fiddle wurde hinzugefügt. Gute Arbeit! –