Android-код для преобразования base64-строки в растровое изображение
Привет, команда stackoverflow. У меня проблема с преобразованием строки base64 в bitmap в android. Я использую камеру для получения изображения, и я конвертирую изображение в строку base64 для отправки на сервер. Я хочу показать это изображение в представлении изображения, так как я могу показать изображение в ImageView после извлечения изображения с камеры. пожалуйста, помогите мне решить проблему.
Ответы
Ответ 1
Предполагая, что ваши данные изображения находятся в строке, называемой myImageData, следующее должно сделать трюк:
byte[] imageAsBytes = Base64.decode(myImageData.getBytes(), Base64.DEFAULT);
ImageView image = (ImageView)this.findViewById(R.id.ImageView);
image.setImageBitmap(
BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length)
);
Для декодирования Base64 вы можете использовать http://iharder.sourceforge.net/current/java/base64/, поскольку Android не поддерживает Base64-поддержку до 2.2.
Обратите внимание: я действительно не запускал этот код, поэтому вам придется дважды проверять наличие ошибок.
Ответ 2
РЕДАКТИРОВАТЬ: Опубликованная почта теперь обновлена, чтобы скопировать мой ответ ниже, либо верны
Принятый ответ неверен, по крайней мере, в JellyBean, KitKat или Lollipop. Вы должны использовать следующее, которое работает для изображений JPEG, PNG или GIF.
byte[] imageAsBytes = Base64.decode(myImageData.getBytes(), Base64.DEFAULT);
ImageView image = (ImageView)this.findViewById(R.id.ImageView);
image.setImageBitmap(
BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length)
);
Ответ 3
Запишите метод Simple, передайте строку Base64 и верните объект Bitmap
Bitmap Base64ToBitmap(String myImageData)
{
byte[] imageAsBytes = Base64.decode(myImageData.getBytes(),Base64.DEFAULT);
return BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length);
}