Android加载Base64编码格式图片

龙旋

共 1561字,需浏览 4分钟

 ·

2021-03-18 09:47

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;    }


到这里就结束啦!


浏览 39
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报