Сохранение массива изображений в файл - PullRequest
0 голосов
/ 24 апреля 2018

У меня есть массив, который выглядит как

String image = obj.getString("data");

[255,216,255,224,0,16,74,70,73,70,0,1,1,0,0,1,0,1,0,0, ....] // это то, что содержит изображение.

Я пытаюсь преобразовать его в байтовый массив с помощью

byte[] bytes = image.getBytes();

Затем я попытался сохранить его с помощью

File file = new File(Environment.getExternalStorageDirectory(), "DirImage/test.jpg");
FileOutputStream fos = new FileOutputStream(file);
fos.write(bytes);
fos.flush();
fos.close();

Файл записывается, но я не могу найти изображение. Показывает мне поврежденный файл.

Ответы [ 2 ]

0 голосов
/ 24 апреля 2018

Сначала определите количество байтов, которое вам нужно. Таким образом, количество десятичных значений содержится в строке. Затем объявите байтовый массив как byte bytes[] = new byte[amount];. Вы также можете сначала разбить эту строку в массиве строк. String parts [] = image.split(",");. parts.length скажет «количество».

Затем выполните цикл по частям и преобразуйте одну за другой строку частей в байт.

0 голосов
/ 24 апреля 2018

Я никогда раньше не работал напрямую с JPEG, но я думаю, что вам нужно указать некоторую информацию в начале файла, вместо прямой выдачи необработанных значений цвета, попробуйте поискать в Google для структуры jpeg.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...