Я пытаюсь перенести стандартное изображение .jpeg в массив значений цвета, которые хранятся в виде значений int методом getPixels Bitmap. Мой код загружается на изображение и отправляет его данные в одномерный массив int, но некоторые значения не имеют никакого смысла, когда я сравниваю их с моим оригинальным изображением. Я знаю, что изображение читается должным образом, потому что у меня моя программа печатает его на экране. Кто-нибудь знает, почему мой вывод содержит такие странные значения?Bitmap возвращает странные значения цвета
/* Test */
ImageView image = (ImageView) findViewById(R.id.imageView1);
Bitmap bMap = BitmapFactory.decodeResource(getResources(), R.drawable.testsmall);
image.setImageBitmap(bMap);
int[] pixels = new int[bMap.getHeight() * bMap.getWidth()];
bMap.getPixels(pixels, 0, bMap.getWidth(), 0, 0, bMap.getWidth(), bMap.getHeight());
int[][] colors2D = new int[bMap.getWidth()][bMap.getHeight()];
Log.i("State", "Start");
for (int x = 0; x < bMap.getWidth(); x++)
{
for (int y = 0; y < bMap.getHeight(); y++)
{
colors2D[x][y] = pixels[x + y * bMap.getWidth()];
Log.i("Inside", "X: " + x + ", Y: " + y + ", Pixel: " + pixels[x + y * bMap.getWidth()]);
}
Log.i("Outside", "New Line");
}
Log.i("State", "End");
/* End Test */
Экстренная Информация:
Следующая содержит вывод LogCat для этой части программы. Странные значения здесь. Класс цвета Android определяет белый как -1 и черный как -16777216.
Это testSmall.jpg. Как видите, это довольно мало. Измерение только 16x16.
https://www.dropbox.com/s/8hbbopoaozuu9ya/testSmall.jpg
FYI- вы обычно указываете цвета в гексагоне. Таким образом, вы можете легко сломать его - первые 2 символа - прозрачность, следующий 2 - красный, затем зеленый, затем синий. Так белый - FFFFFFFF, черный - FF000000, красный - FFFF0000 и т. Д. Гораздо проще сравнивать этот путь. –
Android выражает эти шестнадцатеричные числа в двоичные, представляя цвета. В документации по цветовому классу приведены некоторые примеры. http://developer.android.com/reference/android/graphics/Color.html – BitBoy
Есть ли у Android какие-либо встроенные методы для преобразования двоичных чисел в шестнадцатеричные строковые значения? – BitBoy