Изображение в байтовый массив в строку (и наоборот) - PullRequest
5 голосов
/ 23 февраля 2011

Я хотел бы преобразовать изображение в байтовый массив, а затем преобразовать этот байтовый массив в строку. Кроме того, я хотел бы затем преобразовать эту строку обратно в байтовый массив и, наконец, обратно в изображение. Как я могу сделать это? Любая помощь будет оценена.

1 Ответ

6 голосов
/ 23 февраля 2011
  1. Используйте ImageIO.write(..) и передайте ByteArrayOutputStream. Затем позвоните stream.toByteArray() - у вас есть байты.

  2. Используйте base64 или hex для представления байтового массива в виде строки - commons-codec имеет Base64 и Hex, которые разрешают преобразование в обоих направлениях. Итак, теперь у вас есть строка

  3. См. 2 - преобразование из строки в байтовый массив. Теперь у вас снова есть byte[].

  4. Используйте ImageIO.read(..) и передайте new ByteArrayInputStream(bytes)

(для пунктов 2 и 3 вы можете использовать new String(bytes, "utf-8") и string.getBytes("utf-8"), но предпочитаете base64)

...