从 Java 中的像素读取 RGB 值



我正在尝试从绘制的像素中读取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

不需要除以二进制值。

试试这个:

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);
BufferedImage bi = ...;
int x = ..;
int y = ..;
Color converted = new Color(bi.getRGB(x, y));

您不必划分 RGB 值。

最新更新