java - 将 RGB 值转换为整数

标签 java bufferedimage

所以在 BufferedImage 中,您会收到一个整数,其中表示 RGB 值。到目前为止,我使用以下方法从中获取 RGB 值:

// rgbs is an array of integers, every single integer represents the
// RGB values combined in some way
int r = (int) ((Math.pow(256,3) + rgbs[k]) / 65536);
int g = (int) (((Math.pow(256,3) + rgbs[k]) / 256 ) % 256 );
int b = (int) ((Math.pow(256,3) + rgbs[k]) % 256);

到目前为止,它有效。

我需要做的是弄清楚如何获得一个整数,这样我就可以使用 BufferedImage.setRGB(),因为这需要它提供的相同类型的数据我。

最佳答案

我认为代码类似于:

int rgb = red;
rgb = (rgb << 8) + green;
rgb = (rgb << 8) + blue;

另外,我相信您可以使用以下方法获取各个值:

int red = (rgb >> 16) & 0xFF;
int green = (rgb >> 8) & 0xFF;
int blue = rgb & 0xFF;

关于java - 将 RGB 值转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4801366/

相关文章:

Java NIO FileChannel 与 FileOutputstream 性能/实用性

java - 将 List<BufferedImage> 转换为图像

java - repaint() 不调用 PaintComponent 来使用 Graphics2D

Java 转换 BufferedImage "Subimage"由 4 个点定义

java - 由于变量未初始化,将图像添加到 JPanel 时出错

java - 如何在 java 中使用 apache.commons.imaging 保留 TIFF 图像的透明度

JavaFX eclipse 配置 - openJDK 10

java - Java中如何阻止读写和连接操作

java - 在 Windows 上连续删除早于 X 小时的文件的最有效方法是什么?

java - 从监听器修改 UI