2015-07-01 3 views
1

У меня есть массив положительных целых чисел. Как я могу отобразить это как изображение? Я уже не диапазон значений, которые содержит массив, или размер массива. Аналогичный вопрос был задан here. Но я не знаю возможных значений без поиска очень большого массива. Каков наилучший способ сделать это в отношении эффективности и длины кода?Как преобразовать 2d массив целых чисел в изображение в java?

Вот небольшой пример того, что данные могут быть

0 2 4 6 8 10 12 14 16 
    2 2 6 6 10 10 14 14 18 
    4 6 4 6 12 14 12 14 20 
    6 6 6 6 14 14 14 14 22 
    8 10 12 14 8 10 12 14 24 
    10 10 14 14 10 10 14 14 26 
    12 14 12 14 12 14 12 14 28 
    14 14 14 14 14 14 14 14 30 
    16 18 20 22 24 26 28 30 16 
    18 18 22 22 26 26 30 30 18 
+0

В каком формате вы снимаете? Заголовок BMP-изображения будет первым 14 байтами вашего массива, я думаю. – andrewdleach

+0

Меня не волнует формат файла, если он значительно не снижает эффективность. – Halbort

ответ

1

Посмотрите here.

int xLenght = arr.length; 
int yLength = arr[0].length; 
BufferedImage b = new BufferedImage(xLenght, yLength, 3); 

for(int x = 0; x < xLenght; x++) { 
    for(int y = 0; y < yLength; y++) { 
     int rgb = (int)arr[x][y]<<16 | (int)arr[x][y] << 8 | (int)arr[x][y] 
     b.setRGB(x, y, rgb); 
    } 
} 
ImageIO.write(b, "Doublearray", new File("Doublearray.jpg")); 
System.out.println("end"); 

Теперь отредактируйте этот код, чтобы прочитать правильный ввод.

+0

Можете ли вы проголосовать за ответ, когда он был вам полезен? :) – Aleksandar

+1

Я пробовал это, но я только что присоединился сегодня, поэтому моя репутация меньше 15. :-( – Halbort

Смежные вопросы