canvas.getContext( "2d" ).getImageData(x,y,1,1).data in chrome 和 firefox 的问题



最近我一直在编程,并且遇到了document.getElementById(canvasId).getContext("2d").getImageData(x, y, 1, 1).data;命令在浏览器之间的不一致。我有一张图片,这个图片的一部分颜色是rgb(246,247,247)(我在photoshop中设置了颜色)。我调用getImageData方法来获取点击点的图像数据,查看颜色,如果颜色在一个范围内(我在数组中定义),它将在该区域上绘制一个点。我在IE中运行这个,它就像预期的那样工作,颜色以rgb(246,247,247)出现。当我在Chrome或Firefox中使用完全相同的图像运行完全相同的代码时,问题就出现了,浏览器分别表示颜色为rgb(246,247,246)和rgb(246,247,246)。为什么浏览器显示的颜色与实际颜色不同?是否有其他方法可以可靠地获得画布中像素的颜色?提前感谢!

需要说明的是,web浏览器呈现的颜色各不相同。确保颜色始终相同的最佳方法是使用web安全颜色,并将图像导出为没有gamma通道的PNG-8。

最新更新