Чтение значения RGB из пикселя в Java - PullRequest
0 голосов
/ 06 октября 2018

Я пытаюсь прочитать значения RGB из нарисованного пикселя, но получаю только одно значение.Когда я пытаюсь получить значения для альфы, красного, зеленого и синего, он всегда говорит «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

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

Нет необходимости делить двоичное значение.

Попробуйте это:

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);
0 голосов
/ 06 октября 2018
BufferedImage bi = ...;
int x = ..;
int y = ..;
Color converted = new Color(bi.getRGB(x, y));

Вам не нужно делить значение RGB.

...