首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么HTML Canvas getImageData()不返回与刚才设置的值完全相同的值?

为什么HTML Canvas getImageData()不返回与刚才设置的值完全相同的值?
EN

Stack Overflow用户
提问于 2010-11-30 08:07:28
回答 3查看 14K关注 0票数 21

在使用putImageData将像素写入HTML Canvas上下文时,当我再次获取它们时,我发现像素值并不完全相同。我已经发布了一个sample test page来显示这个问题。归根结底,问题是:

var id = someContext.getImageData(0,0,1,1);
id.data[0]=id.data[3]=64; // 25% red, 25% alpha
id.data[1]=id.data[2]=0;  // No blue or green
someContext.putImageData(id,0,0);
var newData = someContext.getImageData(0,0,1,1);
console.log( newData.data[0] );

在Chrome v8上,红色值返回为63;在Firefoxv3.6、Safari v5和IE9上,红色值返回为67 (全部在Windows上)。在OS上,Chrome v7、Safari v5和FirefoxV3.6也以67的形式返回。它们都不会返回到最初设置的64值!

使用setTimeout在设置和重新获取之间进行延迟没有任何区别。更改页面的背景不会有任何影响。在上下文上使用save()restore() (每个this unlikely article)没有区别。

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

https://stackoverflow.com/questions/4309364

复制
相关文章

相似问题

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