首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有可能从getImageData中获得超过8位的颜色值?

有没有可能从getImageData中获得超过8位的颜色值?
EN

Stack Overflow用户
提问于 2013-01-10 18:17:50
回答 2查看 583关注 0票数 1

我正在尝试操作html5画布上的像素。使用getImageData方法,我只得到了一个包含画布的RGBA值的Uint8Array。有没有可能得到更精确的数组?我想操作图片的所有16位颜色值。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-10 18:20:53

不需要,因为画布上下文的颜色空间必须与CSS颜色值的颜色空间相匹配:

在支持CSS的用户代理中,画布元素使用的颜色空间必须与处理CSS中该元素的任何颜色所使用的颜色空间相匹配。

此外,ImageData的当前规范仅提供8位数组:

代码语言:javascript
运行
复制
interface ImageData {
  readonly attribute unsigned long width;
  readonly attribute unsigned long height;
  readonly attribute Uint8ClampedArray data;
};

参考文献

  • http://www.w3.org/TR/html5/embedded-content-0.html#color-spaces-and-color-correction
  • http://www.w3.org/html/wg/drafts/2dcontext/html5_canvas/#imagedata
票数 2
EN

Stack Overflow用户

发布于 2013-01-10 18:26:40

如今,大多数显示系统的通常颜色分辨率是8位/颜色通道和像素(32位/ RGBA像素),而且在不久的将来不太可能提高,因为人眼无法区分更小的颜色nunaces。因此,getImageData和setImageData使用每个颜色通道8位。

通常只有图像处理需要较高的颜色分辨率。当您希望在内部以每通道16位或更高的速度执行图像处理操作时,您始终可以自己转换getImageData返回的值,并在使用setImageData返回它们之前将其转换回8位。

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

https://stackoverflow.com/questions/14255513

复制
相关文章

相似问题

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