Android加载Base64编码格式的图片

Base64是传输字节码的编码,Android开发过程中,图片的加载多数是请求URL路径或者加载本地的图片,当然也有加载服务器用Base64编码过的图片,比如图形验证码。当然图形验证码我们Android也可以用代码写,这里就介绍Android端加载Base64编码的图片。话不多说,直接上代码:

ImageView加载Base64编码图片,代码:

		//Base64编码地址(地址太长,省略)
        String base64String = "data:image/jpeg;base64,/9j/4AAQSkZJRgA...........";
        //将Base64编码字符串解码成Bitmap
        byte[] decodedString = Base64.decode(base64String.split(",")[1], Base64.DEFAULT);
        Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
        //设置ImageView图片
        imageView.setImageBitmap(decodedByte);

编码后的图片会有” data:image/;base64, “标识,在进行解码时我们需要去掉这一部分,否则会导致解码失败。base64String.split(",")[1]就是获取除"data:image/;base64,"后的地址。

加载Base64编码的图片就是上述的方法,有时我们还需要对图片进行编码与解码,下面就列出方法。

编码:

public String encodeImageToString(Bitmap bitmap) {
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        //读取图片到ByteArrayOutputStream
        bitmap.compress(Bitmap.CompressFormat.PNG, 40, outputStream); //参数如果为100那么就不压缩
        byte[] bytes = outputStream.toByteArray();
        String strImg = Base64.encodeToString(bytes, Base64.DEFAULT);
        return strImg;
    }

解码:

   public Bitmap sendImage(String imgAddress) {
        byte[] input = Base64.decode(imgAddress, Base64.DEFAULT);
        Bitmap bitmap = BitmapFactory.decodeByteArray(input, 0, input.length);
        return bitmap;
    }

小编整理了一份Android电子书籍,需要的童鞋关注底部公众号(longxuanzhigu)回复:“e_books” 即可获取哦!
在这里插入图片描述

以下是个人公众号(longxuanzhigu),之后发布的文章会同步到该公众号,方便交流学习Android知识及分享个人爱好文章:

在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值