Я разрабатываю приложение, в котором пользователь может загрузить изображение как часть короткого сообщения в блоге; это изображение затем кодируется в base64 и сохраняется в базе данных MS SQL Server. Когда я пытаюсь просмотреть изображение позже, оно не отображается. У меня есть заполнитель в ImageView, который исчезает, когда изображение должно быть загружено, но на самом деле изображение не отображается.
Кодирование изображения:
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
img.compress(Bitmap.CompressFormat.JPEG, 35, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream.toByteArray();
String image = Base64.encodeToString(byteArray, Base64.DEFAULT);
Расшифровка образа и помещение в ImageView:
byte[] decodeString = Base64.decode(blog.getImage(), Base64.DEFAULT);
Bitmap decodebitmap = BitmapFactory.decodeByteArray(decodeString, 0, decodeString.length);
image1.setImageBitmap(decodebitmap);
Любая помощь в том, где я ошибаюсь, очень ценится.
@greenapps Он кодирует в Base64
Итак, вы вызываете двоичные данные строк в формате base64? Довольно странно. Я бы сказал, это больше текста.
@greenapps Насколько я понимаю, строка base64 представляет собой двоичные данные изображения, отсюда и моя формулировка :)
Неправильный. Вместо этого вы должны сказать this image is then base64 encoded.
@greenapps Достаточно честно




Используйте эту функцию, чтобы получить Bitmap из base64
public static Bitmap decodeBase64(String input)
{
byte[] decodedBytes = Base64.decode(input, 0);
return BitmapFactory.decodeByteArray(decodedBytes, 0, decodedBytes.length);
}
Эта функция установит вышеупомянутое растровое изображение на ImageView.
private void setImage(ImageView iv,Bitmap bitmap)
{
iv.setImageBitmap(bitmap);
}
this image is then encoded to binary data?? Что бы это было?