从 Java 中的像素读取 RGB 值

Reading RGB value from a pixel in Java

我试图从绘制的像素中读取 RGB 值,但我只得到一个值。当我尝试获取 alpha、红色、绿色和蓝色的值时,它总是对除蓝色之外的每个值都显示“0”,而蓝色是我实际获取值的地方,并且该值始终与 "rgb" 相同。我的代码如下所示,如果你们中的任何人能想到解决方案,我将不胜感激。

int rgb = image.getRGB(250, 10);
rgb = rgb/-65793;
System.out.println(rgb);
Color färg = new Color(rgb, true);
int r = färg.getRed();
int g = färg.getGreen();
int b = färg.getBlue();
int a = färg.getAlpha();
System.out.println(r);
System.out.println(g);
System.out.println(b);
System.out.println(a);

打印的内容如下:

38
0
0
38
0
BufferedImage bi = ...;
int x = ..;
int y = ..;
Color converted = new Color(bi.getRGB(x, y));

不必除RGB值。

二进制值不需要除法

试试这个:

int rgb = img.getRGB(250, 10);
Color color = new Color(rgb);

// get colors (e.g. red)
int red = color.getRed();
System.out.println(red);

// retrieve alpha value via bitshifting
int alpha = (rgb & 0xff000000) >>> 24
System.out.println(alpha);