首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TYPE_INT_RGB和TYPE_INT_ARGB的格式

TYPE_INT_RGB和TYPE_INT_ARGB的格式
EN

Stack Overflow用户
提问于 2011-05-14 18:26:41
回答 3查看 35.4K关注 0票数 17

谁能给我解释一下java是如何在TYPE_INT_RGB和TYPE_INT_ARGB中存储颜色的?

这些代码行在计算红色、绿色和蓝色时是否正常工作?

代码语言:javascript
复制
int red= (RGB>>16)&255;
int green= (RGB>>8)&255;
int blue= (RGB)&255;

那TYPE_INT_ARGB呢?如何从TYPE_INT_ARGB获取红色、绿色和蓝色?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-14 18:40:41

TYPE_INT_ARGB将颜色表示为int (4字节),其中alpha通道位于24-31位,红色通道位于16-23位,绿色通道位于8-15位,蓝色通道位于0-7位。

TYPE_INT_RGB以与TYPE_INT_ARGB相同的方式将颜色表示为int (4字节),但alpha通道被忽略(或位24-31为0)。

看看java.awt.Colorjava.awt.image.BufferedImage的javadoc。

票数 27
EN

Stack Overflow用户

发布于 2011-12-25 22:25:06

您对TYPE_INT_RGB的选择是正确的。等效的TYPE_INT_ARGB代码为:

代码语言:javascript
复制
int rgb = rgbColor.getRGB(); //always returns TYPE_INT_ARGB
int alpha = (rgb >> 24) & 0xFF;
int red =   (rgb >> 16) & 0xFF;
int green = (rgb >>  8) & 0xFF;
int blue =  (rgb      ) & 0xFF;

按照从最高有效位到最低有效位的顺序拼写字节的颜色元素,得到ARGB,因此得名。

票数 11
EN

Stack Overflow用户

发布于 2011-05-14 18:43:49

这些是常量值,用于指示BufferedImage实例的颜色模型。这些值本身并不存储颜色。

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

https://stackoverflow.com/questions/6001211

复制
相关文章

相似问题

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