从 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


慕容森
浏览 178回答 2
2回答

萧十郎

不需要对二进制值进行除法。尝试这个: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 bitshiftingint alpha = (rgb & 0xff000000) >>> 24System.out.println(alpha);

一只斗牛犬

BufferedImage bi = ...;int x = ..;int y = ..;Color converted = new Color(bi.getRGB(x, y));您不必除以 RGB 值。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java