欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android如何加载Base64编码格式图片

程序员文章站 2022-07-06 09:16:56
base64是传输字节码的编码,android开发过程中,图片的加载多数是请求url路径或者加载本地的图片,当然也有加载服务器用base64编码过的图片,比如图形验证码。当然图形验证码我们androi...

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如何加载base64编码格式图片的详细内容,更多关于android 加载base64图片的资料请关注其它相关文章!