当前位置: 首页 > 面试题库 >

如何在Java中将getRGB(x,y)整数像素转换为Color(r,g,b,a)?

慕容越泽
2023-03-14
问题内容

我有从获得的整数像素getRGB(x,y),但是我不知道如何将其转换为RGBA格式。例如,-16726016应为Color(0,200,0,255)。有小费吗?


问题答案:

如果我猜对了,您得到的是形式为的无符号整数0xAARRGGBB,因此

int b = (argb)&0xFF;
int g = (argb>>8)&0xFF;
int r = (argb>>16)&0xFF;
int a = (argb>>24)&0xFF;

将提取颜色分量。但是,快速浏览一下文档会发现您可以

Color c = new Color(argb);

要么

Color c = new Color(argb, true);

如果您也想在颜色中使用alpha分量。

更新

红色和蓝色成分在原始答案中是相反的,因此正确的答案将是:

int r = (argb>>16)&0xFF;
int g = (argb>>8)&0xFF;
int b = (argb>>0)&0xFF;

在第一段代码中也进行了更新



 类似资料:
  • open3d读取bin文件x,y,z,r,g,b,intensity转为pcd发现只能存储x,y,z,rgb无法同时存储颜色跟强度信息,如何处理? 在open3d中发现只有points,colors两个字段可以存储,请问如何同时存储颜色跟强度信息,如何自定义添加字段?

  • 问题内容: 我想创建一种计算整数和大十进制乘法的方法。我在Google和论坛上搜索没有找到任何内容。 有人能帮我吗? 问题答案: 要将整数(或字节/短/浮点数/双精度数)与BigInteger(或BigDecimal)相乘,必须先将本机数字转换为BigInteger / BigDecimal。 注意:是不一样的,而且在不同的原因的BigDecimal和BigInteger的。在这两种情况下,我建议

  • 问题内容: 我有两个整数和。我需要计算,作为结果,我想浮动。例如,作为结果,我希望得到1.5。我认为,最简单的(或唯一的)的方式来做到这一点是转换和成float类型。不幸的是,我找不到简单的方法。你能帮我吗? 问题答案: 你只需要 投 操作数为浮点的至少一个: 要么 或(不必要)

  • 问题内容: 我知道Java不允许无符号类型,所以我想知道它如何将整数转换为字节。假设我有一个值为255的整数a,并且将该整数转换为一个字节。该值表示在字节11111111中吗?换句话说,该值是否更多地视为带符号的8位整数,还是仅直接复制该整数的后8位? 问题答案: 这称为缩小原始转换。根据规格: 将有符号整数缩小为整数类型 T会 简单地丢弃除 n个 最低阶位以外的所有位,其中 n 是用于表示类型

  • 本文向大家介绍如何将整数转换为用R语言写的整数?,包括了如何将整数转换为用R语言写的整数?的使用技巧和注意事项,需要的朋友参考一下 如果我们有数字,那么我们可能希望将这些数字转换为单词。例如,将1转换为1。如果我们有文本数据并且数字是文本的一部分,则可能需要这样做。因此,最好以文本形式表示数字,以使文本保持一致。这可以通过使用replace_number函数qdap软件包来完成。 安装和加载qda

  • Converts RGB values to an HSL object Parameters rnumberred gnumbergreen bnumberblue Returns: object HSL object in the following format: { h numberhue, s numbersaturation, l numberluminosity }