Не удается конвертировать изображение в base64 с помощью Java - PullRequest
0 голосов
/ 26 мая 2018

Я хочу преобразовать изображение в base64 String с использованием Java.

Я пытался использовать следующий код

FileInputStream fileInputStreamReader = new FileInputStream(imagePath);
byte[] bytes = new byte[(int)imagePath.length()];
fileInputStreamReader.read(bytes);

String encodedFile = Base64.getEncoder().encodeToString(bytes);

Но он возвращает очень маленькую строку, которая не является изображением.

Пожалуйста, посмотрите на строку base64, которую я получаю.

iVBORw0KGgoAAAANSUhEUgAABQAAAANVCAIAAACoFcTeAACAAElEQVR42nydBXQcR9a2Y0saZtAwg2AkzYhlWZaZGRKjmJkZLMnMIDPJFCeO7YDtOEbZlswQ2mR590t2s5hv4VtKNqT/Vt2e1tjZ/X3e06en1dNdXV09rqfeW7df2BTt2A==

Пожалуйста, помогите мне. Спасибо.

1 Ответ

0 голосов
/ 26 мая 2018
byte[] bytes = new byte[(int)imagePath.length()];

Здесь вы получаете байтовый массив с длиной, равной вашей imagePath.length, что составляет максимум пару сотен байтов (imagePath равно your/path/to/image.png ...)

Вместо этогоВы должны получить все байты из image в imagePath:

byte[] bytes = Files.readAllBytes(Paths.get(imagePath));
String encodedFile = Base64.getEncoder().encodeToString(bytes);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...