在使用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)没有区别。
https://stackoverflow.com/questions/4309364
复制相似问题