Подтвердить что ты не робот

Android-код для преобразования base64-строки в растровое изображение

Привет, команда stackoverflow. У меня проблема с преобразованием строки base64 в bitmap в android. Я использую камеру для получения изображения, и я конвертирую изображение в строку base64 для отправки на сервер. Я хочу показать это изображение в представлении изображения, так как я могу показать изображение в ImageView после извлечения изображения с камеры. пожалуйста, помогите мне решить проблему.

4b9b3361

Ответ 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);
    }