【问题标题】:Check to see if pixel is black on HTML5 Canvas检查 HTML5 Canvas 上的像素是否为黑色
【发布时间】:2016-04-28 07:48:52
【问题描述】:

我正在尝试查找画布上的像素是否为黑色

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

如果像素为假,我将需要返回真或假,我尝试过 getImageData 但我无法弄清楚如何正确使用它。

【问题讨论】:

标签: javascript html canvas


【解决方案1】:
var canvas= document.getElementById('myCanv');
var pixelData = canvas.getContext('2d').getImageData(event.clientX, event.clientY, 1, 1).data;

就是这样!!

当然,假设你有:

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

FIDDLE

然后:

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

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

【讨论】:

  • 然后我只检查 pixelData 数组中的值,看看它们是否适合黑色?
  • 当然,他仍然需要查询返回的数据以检查它是否为黑色。
  • 以防万一您在画布上遇到鼠标坐标问题,这是我的回答:stackoverflow.com/a/27204937/607407
  • 顺便说一句,为什么不只是dataPixel[0]+dataPixel[1]+dataPixel[2]==0
  • 我喜欢@TomášZato 的简化,但您还必须检查 alpha 元素 (dataPixel[3])。如果 alpha 为零,则该像素是透明的——不是黑色的。 ;-) dataPixel[0]+dataPixel[1]+dataPixel[2]+dataPixel[3]==0
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-27
  • 2016-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-09
  • 1970-01-01
相关资源
最近更新 更多