计算机系统应用教程网站

网站首页 > 技术文章 正文

AndroidStudio_Base64图片的解码_编码_要注意的地方

btikc 2024-10-16 08:17:55 技术文章 5 ℃ 0 评论

Base64图片的解码_编码,方法很多,网上也一大堆.但是要注意:

比如下面:

data:image/jpg;base64,/9j/4AEKW0lEOjEzODUwLGV2dDowXQpbc2NlbmVfaWQ6MF0KW2ZhY2UgcmVjdDowLjc4MzMoMCksIDAuNDkwOCgwKSwgMC4wODEyKDApLCAwLjE0MTUoMCldCnU4X21hcmtbdThfc2hkX3JzdDowXVt1OF95YXdfcnN0OjBdW3U4X3BpaF9yc3Q6MF1bY2xlcml0eTowLjAwMDAwMF1bZGVtaXNyZXBvcnQ6MC4wMDAwMDBdW3U4X2V5ZV9C/9k=

这一个base64编码,注意不是一个完整的,我故意删除了部分内容.

data:image/jpg;base64,

可以看到最前面有这个部分,这个部分一定要注意

如果要把base64,转换成bitmap的话,这里不能带有上面这个部分,如果带着,转换不成功.

    /**
     * 将图片转换为Base64格式字符串
     *
     * @param drawableId 图片资源id,如:R.drawable.ic_action
     * @return Base64格式字符串
     */
    public String drawableToString(int drawableId) {

        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), drawableId);
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
        byte[] bytes = byteArrayOutputStream.toByteArray();
        byte[] encode = Base64.encode(bytes, Base64.DEFAULT);
        return new String(encode);
    }

这个方法一定要注意,要在androidstudio的Activity中,才能用,因为有个getResources(),这个需要在activity的类中才能使用.

写到一个单纯的utils类中会报错的.

    /**
     * 将Base64格式字符串转换为位图
     *
     * @param encodeString 图片的Base64格式字符串
     * @return 位图
     */
    public static Bitmap stringToBitmap(String encodeString) {
        byte[] bytes = Base64.decode(encodeString, Base64.DEFAULT);
        return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
    }






本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表