Получить RGBValues ​​растрового изображения в Android - PullRequest
1 голос
/ 28 июня 2011

У меня проблемы с получением значений RGB растрового изображения в Android ... Вот что я делаю:

int[] temp = new int[width*height];
bit.getPixels(temp, 0, width, 0, 0, width, height);

Однако цвета, похоже, не соответствуют типичным значениям RGB. Например, белый пиксель будет отображаться как -1, а значение RGB для него - 16777215. (Я получаю это значение с этого сайта: http://www.shodor.org/stella2java/rgbint.html)

Существует также масса отрицательных значений, которые не соответствуют нормальным значениям RGB. Мой вопрос заключается в том, существует ли способ преобразования в типичные значения RGB в отличие от целых чисел Android Color, которые возвращает метод getPixels (). Спасибо за любую помощь и дайте мне знать, если у вас есть какие-либо вопросы.

Ответы [ 3 ]

1 голос
/ 28 июня 2011

Согласно документации , -1 - это белый, и действительно, 16777215 - это 0xffffff в шестнадцатеричном формате, что эквивалентно -1.

Все числа для Color являются отрицательными, потому что в шестнадцатеричном значении есть начальный f. В шестнадцатеричном значении есть ведущая ff для указания альфа-значения или непрозрачности. Если цвет полностью непрозрачный, число будет идти с ff, если цвет полностью прозрачный, число будет с 00.

1 голос
/ 28 июня 2011

Сохранить значение в целом числе без знака.

1 голос
/ 28 июня 2011

Может быть, вы можете сначала попробовать getPixel, кажется, это будет проще.

В противном случае, вы можете дать больше кода в своем вопросе (как вы объявляете растровое изображение, гдеВы получаете это значение -1 от ... и т.д ...)

...