Android 中 Base64 轉(zhuǎn)換成 圖片

場景

項(xiàng)目中有個功能是顯示微信付款碼,為了節(jié)省服務(wù)器存儲,將圖片以Base64的形式存儲,客戶端接收到后將Base64轉(zhuǎn)換成圖片并加載,但是不要存放大圖,在網(wǎng)上看到的大多都是使用了一個java庫(import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder;),其實(shí)Android自帶有轉(zhuǎn)換的類(import android.util.Base64;
當(dāng)然也有將圖片轉(zhuǎn)換成Base64,文章末尾給出地址。

實(shí)現(xiàn)

    public static Bitmap stringToBitmap(String string) {
        Bitmap bitmap = null;
        try {
            byte[] bitmapArray = Base64.decode(string.split(",")[1], Base64.DEFAULT);
            bitmap = BitmapFactory.decodeByteArray(bitmapArray, 0, bitmapArray.length);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return bitmap;
    }

注意:
需要去掉字符串的data:image/png;base64,

轉(zhuǎn)碼并保存成文件

    public static void decoderBase64File(String base64Code,String savePath) throws Exception {
        //byte[] buffer = new BASE64Decoder().decodeBuffer(base64Code);
        byte[] buffer =Base64.decode(base64Code, Base64.DEFAULT);
        FileOutputStream out = new FileOutputStream(savePath);
        out.write(buffer);
        out.close();
    }

轉(zhuǎn)碼成bitmap


    public Bitmap stringtoBitmap(String string) {
        //將字符串轉(zhuǎn)換成Bitmap類型
        Bitmap bitmap = null;
        try {
            byte[] bitmapArray;
            bitmapArray = Base64.decode(string, Base64.DEFAULT);
            bitmap = BitmapFactory.decodeByteArray(bitmapArray, 0, bitmapArray.length);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return bitmap;
    }


    public String bitmaptoString(Bitmap bitmap) {
        //將Bitmap轉(zhuǎn)換成字符串
        String string = null;
        ByteArrayOutputStream bStream = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, bStream);
        byte[] bytes = bStream.toByteArray();
        string = Base64.encodeToString(bytes, Base64.DEFAULT);
        return string;
    }

參考文章:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容