преобразование данных пикселей в изображение в Java - PullRequest
0 голосов
/ 30 апреля 2011

Привет У меня есть данные изображения размером 640 * 480 пикселей, данные в формате 0 с и 1 с, в текстовом файле. Следовательно, в текстовом файле 640 * 480 = 307200 символов (0 с и 1 с). Подвох в том, что 0 означает, что в исходном изображении ничего не было (скажем, черный фон), а 1 означает, что есть (скажем, пользователь стоит и относится к пользовательскому блобу) и, следовательно, его НЕ следует ошибочно принимать за RGB или байт данные.

Мне нужно прочитать и преобразовать это в изображение размером 640 * 480 пикселей в java, где пиксели, обозначенные 0, могут быть установлены на один цвет (скажем, черный), а 1 - на другой (скажем, белый).
Как мне это сделать??? спасибо за помощь.

1 Ответ

4 голосов
/ 30 апреля 2011

Во-первых, вам нужно прочитать это. Если вы знаете, что это ширина, вы можете сделать что-то вроде этого:

BufferedReader in = new BufferedReader(new FileReader("myfile.txt"));
boolean[][] mask = new boolean[640][480];
int i = -1;
int count = 0;
while((i = in.read()) !- -1) {
    int x = count % 640;
    int y = count / 640;
    mask[x][y] = (i == '1');
    count++;
}

Затем вы можете рисовать вот так

paint(Graphics g) {
    g.setColor(Color.BLACK);
    g.drawRect(0,0,640,480); // draw the black background

    // mask it with white
    g.setColor(Color.WHITE);
    for(int x = 0; x < 640); x++) {
        for(int y = 0; y < 480); y++) {
            if(mask[x][y]) g.drawRect(x,y,1,1);
        }
    }
}
...