forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   JAVA Micro Edition (http://forum.boolean.name/forumdisplay.php?f=52)
-   -   В чем ошибка? (http://forum.boolean.name/showthread.php?t=15500)

foldel 18.09.2011 14:26

В чем ошибка?
 
Не могу понять в чем проблема...
int w = 176;
int h = 220;
int rgb[] = new int[w * h];
byte[][][] im = new byte[3][h][w];
int i = 0;
for (int y = 0; y < h; y++) {
for (int x = 0; x < w; x++) {
im[y][x] = new byte[3];
im[y][x][0] = (byte) (rgb[i] >> 16 & 0xff);
im[y][x][1] = (byte) (rgb[i] >> 8 & 0xff);
im[y][x][2] = (byte) (rgb[i] & 0xff);
i++;
}
}


///
java.lang.ArrayIndexOutOfBoundsException: 3
///

Romanzes 18.09.2011 17:18

Ответ: В чем ошибка?
 
Что ты с индексами намудрил? Зачем ты их в произвольном порядке расставил? Вот мой вариант:
Код:

int w = 176;
int h = 220;
int rgb[] = new int[w * h];
byte[][][] im = new byte[3][w][h];
int i = 0;
for (int y = 0; y < h; y++) {
    for (int x = 0; x < w; x++, i++) {
        im[0][x][y] = (byte) (rgb[i] >> 16 & 0xff);
        im[1][x][y] = (byte) (rgb[i] >> 8 & 0xff);
        im[2][x][y] = (byte) (rgb[i] & 0xff);
    }
}


foldel 18.09.2011 17:33

Ответ: В чем ошибка?
 
О! Спасибо.


Часовой пояс GMT +4, время: 12:26.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot