首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >putImageData/getImageData不是100%准确

putImageData/getImageData不是100%准确
EN

Stack Overflow用户
提问于 2013-11-29 02:17:37
回答 1查看 360关注 0票数 0

基本上,putImageData和/或getImageData并不是100%准确的,我想知道是否有办法解决这个问题(当你逐个选择每个像素数据时,我不确定为什么它不是100%准确)。我这样做是为了更容易理解我在说什么:http://jsfiddle.net/NmmMv/

在我电脑上的FireFox上,文本的输出将是"2,123,255,101“,但在Chrome上,它将是"3,121,255,101”。如果你因为某些原因不能查看链接,下面是实际的代码:

JavaScript:

代码语言:javascript
复制
C = document.getElementById('c');
c = C.getContext('2d');
d = c.getImageData(0, 0, C.width, C.height);
for (i = 0; i < d.data.length; i += 4) {
    d.data[0] = 2
    d.data[1] = 122
    d.data[2] = 255
    d.data[3] = 101
}
c.putImageData(d, 0, 0, 0, 0, C.width, C.height);
d = c.getImageData(0, 0, C.width, C.height);
document.getElementById('p').innerHTML = d.data[0] + ', ' + d.data[1] + ', ' + d.data[2] + ', ' + d.data[3]

HTML:

代码语言:javascript
复制
<canvas width='100' height='100' id='c'></canvas>
<p id='p'></p>

我试着寻找这样的问题,但我没有找到任何相关的东西。以防万一,如果这将是后来的问题,我需要这是100%准确的,即使当使用toDataURL()上传图像到网站,也是当网站返回的数据稍后,并让浏览器绘制新的画布上的图像。

EN

回答 1

Stack Overflow用户

发布于 2013-11-29 02:48:37

对于图像,可以关闭图像平滑:

代码语言:javascript
复制
context.imageSmoothingEnabled = false;
context.mozImageSmoothingEnabled = false;
context.oImageSmoothingEnabled = false;
context.webkitImageSmoothingEnabled = false;
context.msImageSmoothingEnabled =false;

IE<11不支持ImageSmoothingEnabled,因此作为一种解决方法,您可以设置-ms-interpolation-mode:最近邻

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20272576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档