2011-06-28 6 views
1

У меня возникли некоторые вопросы, получить значение RGB растрового изображения в Android ... Это то, что я делаю:Получить RGBValues ​​растрового изображения в 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, возвращаемые методом getPixels(). Спасибо за любую помощь и дайте мне знать, если у вас есть вопросы.

ответ

1

Возможно, сначала вы можете попробовать getPixel, похоже, было бы проще.

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

1

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

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

+0

Дело в том, что мне нужны положительные значения этих чисел. Есть ли способ получить их легко? – Kevin

+0

Я обновил свой ответ, чтобы быть более ясным. –

1

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