我正在尝试操作html5画布上的像素。使用getImageData方法,我只得到了一个包含画布的RGBA值的Uint8Array。有没有可能得到更精确的数组?我想操作图片的所有16位颜色值。
发布于 2013-01-10 18:20:53
不需要,因为画布上下文的颜色空间必须与CSS颜色值的颜色空间相匹配:
在支持CSS的用户代理中,画布元素使用的颜色空间必须与处理CSS中该元素的任何颜色所使用的颜色空间相匹配。
此外,ImageData
的当前规范仅提供8位数组:
interface ImageData {
readonly attribute unsigned long width;
readonly attribute unsigned long height;
readonly attribute Uint8ClampedArray data;
};
参考文献
发布于 2013-01-10 18:26:40
如今,大多数显示系统的通常颜色分辨率是8位/颜色通道和像素(32位/ RGBA像素),而且在不久的将来不太可能提高,因为人眼无法区分更小的颜色nunaces。因此,getImageData和setImageData使用每个颜色通道8位。
通常只有图像处理需要较高的颜色分辨率。当您希望在内部以每通道16位或更高的速度执行图像处理操作时,您始终可以自己转换getImageData返回的值,并在使用setImageData返回它们之前将其转换回8位。
https://stackoverflow.com/questions/14255513
复制相似问题