java实现图片转base64字符串 java实现base64字符串转图片

Java实现图片转Base64字符串和Base64字符串转图片的过程可以分为两部分进行:

第一部分:图片转Base64字符串。

  1. 使用Java中的File类或者ImageIO类读取图片文件,并将其转化为BufferedImage对象,如下代码:
File file = new File("test.png");
BufferedImage image = ImageIO.read(file);
  1. 使用ByteArrayOutputStream类输出流将BufferedImage对象转为字节数组,并使用Base64类的getEncoder()方法进行编码,生成Base64字符串,如下代码:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(image, "png", baos);

byte[] bytes = baos.toByteArray();

String base64Str = Base64.getEncoder().encodeToString(bytes);

System.out.println(base64Str);

第二部分:Base64字符串转图片。

  1. 使用Base64类的getDecoder()方法将Base64字符串解码成字节数组,如下代码:
String base64Str = "iVBORw0KGgoAAAANSUhEUgAAAAUA\n..."

byte[] bytes = Base64.getDecoder().decode(base64Str);
  1. 使用ByteArrayInputStream类输入流将字节数组转为BufferedImage对象,如下代码:
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
BufferedImage image = ImageIO.read(bais);
  1. 使用ImageIO类将BufferedImage对象保存为目标格式的图片文件,如下代码:
File outputFile = new File("test2.png");
ImageIO.write(image, "png", outputFile);

示例说明:

示例1:将一张png格式的图片转为Base64字符串,并输出该字符串。

import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.util.Base64;

import javax.imageio.ImageIO;

public class ImageToBase64 {

    public static void main(String[] args) throws IOException {
        // 读取图片文件
        File file = new File("test.png");
        BufferedImage image = ImageIO.read(file);

        // 转换为字节数组并编码生成Base64字符串
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        ImageIO.write(image, "png", baos);
        byte[] bytes = baos.toByteArray();
        String base64Str = Base64.getEncoder().encodeToString(bytes);

        // 输出Base64字符串
        System.out.println(base64Str);
    }

}

示例2:将一个png格式的Base64字符串转为图片文件,保存到本地。

import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.util.Base64;

import javax.imageio.ImageIO;

public class Base64ToImage {

    public static void main(String[] args) throws IOException {
        // 解码Base64字符串为字节数组
        String base64Str = "iVBORw0KGgoAAAANSUhEUgAAAAUA\n...";
        byte[] bytes = Base64.getDecoder().decode(base64Str);

        // 转为BufferedImage对象
        ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
        BufferedImage image = ImageIO.read(bais);

        // 保存为图片文件
        File outputFile = new File("test2.png");
        ImageIO.write(image, "png", outputFile);
    }

}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java实现图片转base64字符串 java实现base64字符串转图片 - Python技术站

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

相关文章

  • (starters)springboot-starter整合阿里云datahub方式

    完整攻略:Spring Boot整合阿里云DataHub 一、前置条件在开始整合之前,需要先确保以下几个条件: 阿里云账号及DataHub服务我们需要一个已开通DataHub服务的阿里云账号,假设我们已有一个名为”test-datahub”的DataHub项目。 工具准备a) Maven及Java IDE(本文以Intellij IDEA为例)b) 阿里云S…

    Java 2023年5月20日
    00
  • CentOS 6.8 NFS 文件共享设置的方法

    下面是详细讲解“CentOS 6.8 NFS 文件共享设置的方法”的完整攻略。 一、NFS 文件共享的概念 NFS,即 Network File System(网络文件系统),是一种允许不同的计算机之间共享文件的协议。通过 NFS,远程计算机可以像本地文件一样访问另一台计算机上的文件。NFS 可以提供高效的文件共享,避免了数据复制和同步的繁琐过程。 二、NF…

    Java 2023年6月16日
    00
  • JSP是什么?JSP是什么意思?

    JSP(JavaServer Pages)是Java技术中的一项Web技术,它以标记语言为主、Java脚本语言为辅,让开发人员可以在HTML网页内插入Java程序代码及特定标记语句,以生成动态的Web页面。 在一般的Web应用中,由于HTML是静态的,无法根据用户的不同请求来动态地改变页面内容,这时就需要用到JSP来实现动态页面的生成。在JSP中,HTML代…

    Java 2023年6月15日
    00
  • 一篇文章让你三分钟学会Java枚举

    学习Java枚举的完整攻略 什么是枚举? 枚举(Enum)是Java中的一种数据类型,它可以将一组有限个数的字符常量定义为可枚举的列表。 比如可以定义一个颜色的枚举类型: enum Color { RED, YELLOW, BLUE, GREEN } 枚举的特点 枚举中的每个枚举值都是一个常量,用大写字母表示 枚举类型通过Enum类实现,每个枚举值都是该类型…

    Java 2023年5月26日
    00
  • SpringBoot实现API接口的完整代码

    下面是关于SpringBoot实现API接口的完整代码的详细攻略。 1. 准备工作 开发环境:Java8及以上、Maven、IDE(推荐使用IntelliJ IDEA或Eclipse等常用的Java IDE) 打开IDE,创建一个SpringBoot项目 2. 创建Controller 在SpringBoot应用中实现API接口,最常见的方式就是使用控制器C…

    Java 2023年5月19日
    00
  • Java开发中常用记录

    关于”Java开发中常用记录”的完整攻略,我会从以下几个方面进行详细讲解: 主要记录内容 在Java开发中,常用的记录内容有:日志信息、异常信息、性能统计、代码执行路径等。这些信息对于问题排查、性能优化等方面非常有帮助。 常用记录工具 Java开发中常用的记录工具有:log4j、logback、java.util.logging等。这些工具可以帮助我们方便地…

    Java 2023年5月30日
    00
  • java_object的简单使用详解

    Java对象的简单使用详解 什么是Java对象 在Java中,对象是存储数据和方法的数据结构。它是一个使用类或者接口定义的实例,具有属性和行为。在Java中,对象是用于封装数据和行为的任何实体。对象由状态和行为组成。 创建Java对象 在Java中,使用new操作符来创建一个对象。下面是一个创建Java对象的例子: MyObject obj = new My…

    Java 2023年5月26日
    00
  • IDEA创建Java项目导出Jar包运行

    下面是详细的步骤说明: 1. 创建Java项目 首先,我们需要创建一个Java项目。在IntelliJ IDEA中,可以通过以下步骤创建Java项目: 点击IDEA主界面左上角的 “File” -> “New Project” 在弹出的对话框中,选择 “Java” -> “Java Application” 在配置界面中,为项目命名,选择好路径之…

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