首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将Base64字符串转换为位图图像以在ImageView中显示?

如何将Base64字符串转换为位图图像以在ImageView中显示?
EN

Stack Overflow用户
提问于 2011-01-29 21:28:19
回答 7查看 228K关注 0票数 218

我有一个表示BitMap图像的Base64字符串。

我需要再次将该字符串转换为BitMap图像,才能在我的安卓应用程序的ImageView上使用它

该怎么做呢?

这是我用来将图像转换为base64字符串的代码:

代码语言:javascript
复制
//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);
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-01-29 22:07:45

你基本上可以使用一些其他的内置方法来还原你的代码。

代码语言:javascript
复制
byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 
票数 405
EN

Stack Overflow用户

发布于 2014-11-26 12:59:52

这是一个非常老的帖子,但我想分享这个答案,因为我花了很多开发时间来管理@Anirudh所面临的BitmapFactory.decodeByteArray()NULL返回。

如果encodedImage字符串是JSON响应,则只需使用Base64.URL_SAFE而不是Base64.DEAULT

代码语言:javascript
复制
byte[] decodedString = Base64.decode(encodedImage, Base64.URL_SAFE);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
票数 17
EN

Stack Overflow用户

发布于 2017-02-17 18:08:45

要进行在线检查,您可以使用

http://codebeautify.org/base64-to-image-converter

您可以像这样将字符串转换为图像

代码语言:javascript
复制
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Base64;
import android.widget.ImageView;

import java.io.ByteArrayOutputStream;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ImageView image =(ImageView)findViewById(R.id.image);

        //encode image to base64 string
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.logo);
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
        byte[] imageBytes = baos.toByteArray();
        String imageString = Base64.encodeToString(imageBytes, Base64.DEFAULT);

        //decode base64 string to image
        imageBytes = Base64.decode(imageString, Base64.DEFAULT);
        Bitmap decodedImage = BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.length);
        image.setImageBitmap(decodedImage);
    }
}

http://www.thecrazyprogrammer.com/2016/10/android-convert-image-base64-string-base64-string-image.html

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4837110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档