Если я сделаю снимок с моей Samsung Galaxy S2, изображение будет 3264 х 2448 пикселей.Я хочу использовать проверку цветового диапазона, но она не работает.
Однако, если я уменьшу изображение, например, 2500 x 2500 (меньше пикселей), то это сработает.Но я хочу использовать размер картинки галактики s2 (3264 x 2448).Я думаю, что это проблема с памятью?Я точно не знаю, каков предел.Но есть ли еще один способ «обойти» эту проблему?
Это кусок кода, как я это делаю сейчас:
bmp = BitmapFactory.decodeResource(getResources(),
R.drawable.four_colors);
int width = bmp.getWidth();
int height = bmp.getHeight();
int[] pixels = new int[width * height];
bmp.getPixels(pixels, 0, width, 0, 0, width, height);
for (int y = 0; y < height; y++){
for (int x = 0; x < width; x++){
int index = y * width + x;
int R = (pixels[index] >> 16) & 0xff; //bitwise shifting
int G = (pixels[index] >> 8) & 0xff;
int B = pixels[index] & 0xff;
total++;
if ((G > R)&&(G > B)){
counter++;
}
}
}
Это дает сбой, потому что картинка слишком большая, маленькаяфото работают.Так их что-нибудь, чтобы «обойти» эту проблему?вместо того, чтобы использовать меньшие изображения:)
Я пробовал некоторые другие вещи, но безуспешно, я пытаюсь объяснить, что я пытался.
Я пытался "вырезать" изображениепополам, а затем сканировать отдельно (* не работает).
, и я попытался отсканировать только половину (1632 x 1224), а затем повернуть изображение (на 180 градусов)и отсканируйте его снова, но также это не сработало.
- Ударь меня:)