Java Base64位编码与String字符串的相互转换,Base64与Bitmap的相互转换实例代码

Java中提供了Base64类用于编码和解码base64字符串,通过该类我们可以实现字符串和base64编码之间的相互转换,下面是详细的攻略:

Base64位编码与String字符串的相互转换

编码

在Java中,我们可以使用java.util.Base64类的getEncoder()方法获取Base64编码器,通过调用该对象的encodeToString()方法就可以将普通字符串进行Base64编码:

import java.util.Base64;

public class Base64Demo {
    public static void main(String[] args) {
        String str = "hello world";
        String base64Str = Base64.getEncoder().encodeToString(str.getBytes());
        System.out.println("普通字符串:" + str);
        System.out.println("Base64编码后字符串:" + base64Str);
    }
}

输出结果为:

普通字符串:hello world
Base64编码后字符串:aGVsbG8gd29ybGQ=

解码

同样地,我们可以使用java.util.Base64类的getDecoder()方法获取Base64解码器,然后调用decode()方法对Base64编码后的字符串进行解码:

import java.util.Base64;

public class Base64Demo {
    public static void main(String[] args) {
        String base64Str = "aGVsbG8gd29ybGQ=";
        byte[] bytes = Base64.getDecoder().decode(base64Str);
        String str = new String(bytes);
        System.out.println("Base64编码后字符串:" + base64Str);
        System.out.println("普通字符串:" + str);
    }
}

输出结果为:

Base64编码后字符串:aGVsbG8gd29ybGQ=
普通字符串:hello world

Base64与Bitmap的相互转换

在Android应用中,我们常常需要将图片转换成Base64编码字符串进行网络传输,或者将Base64编码字符串转换成图片进行展示。下面是示例代码:

Bitmap转Base64编码字符串

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Base64;

import java.io.ByteArrayOutputStream;

public class BitmapUtil {
    public static String bitmapToBase64(Bitmap bitmap) {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
        byte[] bytes = baos.toByteArray();
        return Base64.encodeToString(bytes, Base64.DEFAULT);
    }

    public static Bitmap base64ToBitmap(String base64Str) {
        byte[] bytes = Base64.decode(base64Str, Base64.DEFAULT);
        return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
    }
}

使用示例:

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.test_image);
String base64Str = BitmapUtil.bitmapToBase64(bitmap);

Base64编码字符串转Bitmap

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Base64;

public class BitmapUtil {
    public static Bitmap base64ToBitmap(String base64Str) {
        byte[] bytes = Base64.decode(base64Str, Base64.DEFAULT);
        return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
    }

    public static String bitmapToBase64(Bitmap bitmap) {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
        byte[] bytes = baos.toByteArray();
        return Base64.encodeToString(bytes, Base64.DEFAULT);
    }
}

使用示例:

Bitmap bitmap = BitmapUtil.base64ToBitmap(base64Str);

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java Base64位编码与String字符串的相互转换,Base64与Bitmap的相互转换实例代码 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 基于SpringBoot开机启动与@Order注解

    基于Spring Boot开机启动与@Order注解 在Spring Boot应用程序中,我们可以使用@Order注解来指定Bean的加载顺序。此外,我们还可以使用Spring Boot的开机启动功能,在应用程序启动时自动执行一些任务。本文将介绍如何使用@Order注解和开机启动功能。 @Order注解 @Order注解是Spring框架提供的一个注解,用于…

    Java 2023年5月15日
    00
  • Java面向对象之抽象类,接口的那些事

    Java面向对象之抽象类与接口 什么是抽象类? 抽象类是一种特殊的类,它不能被实例化,只能被继承。 定义抽象类 抽象类的定义方式为,在class前加上abstract关键字。 下面是一个定义抽象类的示例代码: abstract class Animal { public abstract void move(); } 其中,Animal是一个抽象类,而mov…

    Java 2023年5月26日
    00
  • MyBatis3源码解析之如何获取数据源详解

    首先,我们需要明确一下MyBatis3是什么,它的作用是什么。MyBatis3是一个持久层框架,它的作用是将Java对象和关系型数据库之间的操作映射起来,使得我们可以通过Java对象对数据库进行简单的增、删、改、查操作,而无需编写大量的SQL语句。接下来,我将从获取数据源的角度出发,给大家讲解如何理解MyBatis3的数据源配置。 数据源配置 在MyBati…

    Java 2023年5月20日
    00
  • 基于JS实现导航条flash导航条

    针对“基于JS实现导航条flash导航条”的完整攻略,我给出如下详细讲解: 介绍 flash导航条,是通过flash技术来实现网站导航栏,使导航效果更为优美且富有动感。在近年来,随着web前端技术的发展,人们开始尝试使用javascript的方式实现类似的效果。下面参加我将通过两个案例,详细解释如何通过JS实现这样一个效果。 实现思路 实现flash导航条,…

    Java 2023年6月15日
    00
  • JavaWeb实现简单的自动登录功能

    JavaWeb 实现自动登录的功能,通常需要将用户登录时输入的用户名和密码保存到浏览器的 Cookie 中,下次用户再次访问网站时,如果本地浏览器保存有对应的 Cookie,则无需再次登录,直接获取用户的登录信息即可。 实现自动登录的具体步骤如下: 在登录时,将用户输入的用户名和密码进行验证,如果验证通过则生成一个唯一的令牌 token,并将该令牌和用户名保…

    Java 2023年6月15日
    00
  • Java垃圾回收之标记清除算法详解

    Java垃圾回收之标记清除算法详解 什么是垃圾回收算法 垃圾回收算法是一种自动管理内存的机制,用于自动回收不再使用的内存空间。 Java 中垃圾回收算法主要有标记清除算法、复制算法、标记整理算法和分代收集算法。 标记清除算法 标记清除算法是最简单的一种垃圾回收算法,它分为两个步骤:标记和清除。 标记 标记可以理解为“识别”不再使用的对象,通常从“根对象”开始…

    Java 2023年5月19日
    00
  • SpringSecurity rememberme功能实现过程解析

    下面我给你详细讲解“SpringSecurity rememberme功能实现过程解析”的完整攻略。 1. 简介 Spring Security是一个流行的安全框架,可以为Web应用程序提供身份验证和授权的服务。其中的rememberme功能可以帮助用户在登出后不必重新登录,便能够快速访问应用程序。其实现原理是利用cookie存储用户登录凭据并在下次登录时使…

    Java 2023年5月20日
    00
  • Java实现简单的模板渲染

    感谢您的提问!下面是关于Java实现简单的模板渲染的攻略: 什么是模板渲染? 模板渲染是指将预先定义好的模板文件中的数据和样式数据结合起来,生成最终的HTML文件或者其他文本格式的文件的过程。 如何实现模板渲染? 在Java中,我们可以通过使用模板引擎来实现模板渲染。一般来说,模板引擎需要支持一定的模板语言,可以方便我们在模板文件中嵌入变量、逻辑判断、循环、…

    Java 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部