0 голосов
 
1287 просмотров
4.01.2017 / 10:57  Death

BufferedImage -> byte[]

Как преобразовать изображение(BufferedImage) в массив байт?
4.01.2017 / 11:01  aNNiMON
Смотри в сторону класса InageIO
Ответы
 
2 голоса
 
# 4.01.2017 / 12:48  aNNiMON
ImageIO (Java Platform SE 7)

  1. ByteArrayOutputStream baos = new ByteArrayOutputStream();
  2. ImageIO.write(image, "png", baos);
  3. byte[] array = baos.toByteArray();
Массив байт будет в формате png. Можно ещё в jpg или gif закодировать.
Вместо массива байт можно сразу в файл записать, третий параметр на new File("image.png") замени.
Изм. aNNiMON от 4.01.2017 / 12:48
4.01.2017 / 12:50  Death
Не знаю почему, но у меня этот массив размером в нуль.
4.01.2017 / 12:51  vlavolk
Полагаю что надо new FileOutputStream(new File("image.png"))
4.01.2017 / 12:53  aNNiMON
Нет, есть конструктор, принимающий File, всё норм.
4.01.2017 / 13:19  Death
Мне нужно массив байт, потом я ещё массивы заготовленные(другие файлы), строки... Короче всё-всё перевожу в массив байт, и помещаю в один файл, и шифрую его, а потом при запуске игры я его расшифровываю и "вытаскиваю" эти массивы, вот из массива у меня получается сделать изображение, но не наоборот.
А то что вы сразу new File предлогаете использовать, с них будет хорошо скрины делать с моей библиотекой.
 
0 голосов
 
# 4.01.2017 / 12:08  Artem_x86
можно с помощью метода int[] getRGB(int startX, int startY, int w, int h, int[] rgbArray, int offset, int scansize), правда он вернёт массив int в котором каждое значение это значение цвета ARGB соответственно, вот пример использования:
  1. BufferedImage image;
  2. // ...
  3. int[] argb = image.getRGB(0, 0, image.getWidth(), image.getHeight(), null, 0, image.getWidth());
Изм. Artem_x86 от 4.01.2017 / 12:13
4.01.2017 / 12:42  Death
Нееее, Это не то. Мне нужно в байтах, что бы в файл записать. Хотя если я запишу массив int, то файл большой очень получится.
4.01.2017 / 12:58  Artem_x86
тогда как написали выше можно сразу так ImageIO.write(image, "png", new File("image.png")), а вообще вопрос бы точней задавать, что хочешь сохранить в файл.
Всего: 2

Реклама

Мы в соцсетях

tw tg yt gt