为了账号安全,请及时绑定邮箱和手机立即绑定

从 Java 中的像素读取 RGB 值

从 Java 中的像素读取 RGB 值

慕容森 2021-10-28 17:29:31
我试图从绘制的像素中读取 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);打印出来的内容如下:3800380
查看完整描述

2 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

不需要对二进制值进行除法。


尝试这个:


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);


查看完整回答
反对 回复 2021-10-28
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

BufferedImage bi = ...;

int x = ..;

int y = ..;

Color converted = new Color(bi.getRGB(x, y));

您不必除以 RGB 值。


查看完整回答
反对 回复 2021-10-28
  • 2 回答
  • 0 关注
  • 177 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信