У меня есть Base64 String, который представляет изображение BitMap.
Мне нужно снова преобразовать эту строку в изображение BitMap, чтобы использовать его в ImageView в моем приложении для Android
Как это сделать?
Это код, который я использую для преобразования изображения в строку base64:
//proceso de transformar la imagen BitMap en un String:
//android:src="c:\logo.png"
Resources r = this.getResources();
Bitmap bm = BitmapFactory.decodeResource(r, R.drawable.logo);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG, 100, baos); //bm is the bitmap object
byte[] b = baos.toByteArray();
//String encodedImage = Base64.encode(b, Base64.DEFAULT);
encodedImage = Base64.encodeBytes(b);
String cleanImage = base64Image.replace("data:image/png;base64,", "").replace("data:image/jpeg;base64,","");
Всем, кто все еще интересуется этим вопросом: If: 1-decodeByteArray возвращает ноль 2-Base64.decode выдает исключение bad-base64
Вот решение: -Вы должны учитывать, что значение, отправленное вам из API, является Base64 Encoded и должно быть сначала декодировано, чтобы привести его к объекту Bitmap! -Посмотрите на строку в кодировке Base64, если она начинается с
Base64.decode не сможет его декодировать, поэтому его нужно удалить из вашей закодированной строки:
Теперь объект pureBase64Encoded готов к декодированию:
Теперь просто используйте строку ниже, чтобы превратить это в растровый объект! :
Или, если вы используете большую библиотеку Glide :
Это должно сделать работу! Он потратил один день на это и пришел к этому решению!
Примечание : Если вы все еще получаете ошибку bad-base64, рассмотрите другие флаги Base64.decode, такие как Base64.URL_SAFE и т. Д.
источник
Это очень старая тема, но я решил поделиться этим ответом, так как мне потребовалось много времени на разработку, чтобы справиться с
NULL
возвратом, сBitmapFactory.decodeByteArray()
которым столкнулся @Anirudh.Если
encodedImage
строка являетсяJSON
ответом, просто используйтеBase64.URL_SAFE
вместоBase64.DEAULT
источник
Чтобы проверить онлайн вы можете использовать
http://codebeautify.org/base64-to-image-converter
Вы можете преобразовать строку в изображение следующим образом
http://www.thecrazyprogrammer.com/2016/10/android-convert-image-base64-string-base64-string-image.html
источник
Я нашел это простое решение
Для преобразования из растрового изображения в Base64 используйте этот метод.
Для преобразования из Base64 в растровое ИЛИ вернуть.
источник