Java 处理图片与base64 编码的相互转换的示例

下面是详细讲解“Java 处理图片与base64 编码的相互转换的示例”的完整攻略:

1. 处理图片转base64编码

1.1 第一步,读取图片文件

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.codec.binary.Base64;

public class ImgToBase64 {

  public static String getImageStr(String imgFilePath) {

    InputStream inputStream = null;
    byte[] buffer = null;
    try {
      File imgFile = new File(imgFilePath);
      inputStream = new FileInputStream(imgFile);
      buffer = new byte[inputStream.available()];
      inputStream.read(buffer);
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      if (inputStream != null) {
        try {
          inputStream.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
    }
    return Base64.encodeBase64String(buffer);
  }
}

1.2 第二步,调用getImageStr方法

public class ImgToBase64Test {

  public static void main(String[] args) {
    String imgFilePath = "test.jpg";
    String imgBase64Str = ImgToBase64.getImageStr(imgFilePath);
    System.out.println(imgBase64Str);
  }
}

2. 处理base64编码转图片

2.1 第一步,解码base64编码

import java.util.Base64;
import java.io.IOException;
import java.io.InputStream;

public class Base64ToImg {

  public static byte[] decodeBase64(String base64) {
    return Base64.getDecoder().decode(base64);
  }
}

2.2 第二步,写入图片文件

import java.io.FileOutputStream;
import java.io.IOException;

public class Base64ToImg {

  public static void generateImage(String imgFilePath, String imgBase64Str) {
    byte[] buffer = Base64ToImg.decodeBase64(imgBase64Str);
    FileOutputStream fos = null;

    try {
      fos = new FileOutputStream(imgFilePath);
      fos.write(buffer);
      fos.flush();
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      if (fos != null) {
        try {
          fos.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
    }
  }
}

2.3 第三步,调用generateImage方法

public class Base64ToImgTest {

  public static void main(String[] args) {
    String imgFilePath = "test.jpg";
    String imgBase64Str = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD";
    Base64ToImg.generateImage(imgFilePath, imgBase64Str);
  }
}

这两个示例中,分别展示了如何将图片转换成base64编码以及如何将base64编码转换回图片。第一个示例中,通过读取图片文件并使用Apache Commons Codec将其转换为base64编码字符串。第二个示例中,首先使用Java的Base64类解码base64编码字符串,然后将解码后的二进制数据写入文件系统中。这些示例可以帮助您快速了解如何在Java中处理图像和base64编码之间的转换。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 处理图片与base64 编码的相互转换的示例 - Python技术站

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

相关文章

  • 浅谈RxJava处理业务异常的几种方式

    浅谈RxJava处理业务异常的几种方式 在RxJava中,对于发生的业务异常,我们需要合理地处理它们。本文将为你详细讲解RxJava处理业务异常的几种方式。 方式一:使用onErrorReturn onErrorReturn操作符可以自定义需要返回的异常。当遇到一个发生了异常的Observable时,它会立即将预先定义好的值或者引用返回给订阅者。 下面是一个…

    Java 2023年5月27日
    00
  • 用Java实现简单ATM机功能

    下面是用Java实现简单ATM机功能的完整攻略: 1. 需求分析 在实现ATM机功能前,我们首先需要对需求进行分析。 根据通常的ATM操作流程,我们可以将以下主要功能列出: 查询余额 取款 存款 转账 2. 设计思路 在完成需求分析后,我们需要进行设计思路。 我们需要为ATM机设计一个系统,包含以下实体: 用户 银行账号 ATM机 我们可以通过面向对象的方式…

    Java 2023年5月19日
    00
  • 在Win10上安装Tomcat服务器及配置环境变量的详细教程(图文)

    在Win10上安装Tomcat服务器及配置环境变量的详细教程: 准备工作 官方网站下载Tomcat服务器压缩文件,例如tomcat-8.5.57.tar.gz 安装JDK,推荐版本为JDK8或JDK11,JDK11及以上版本,Tomcat需版本在9及以上 确认JDK环境变量已配置 安装Tomcat 解压Tomcat服务器压缩文件到指定目录。例如,将压缩文件解…

    Java 2023年5月19日
    00
  • sublime text 3 快捷键大全以及配置编译环境

    Sublime Text 3 快捷键大全以及配置编译环境 Sublime Text 3 是一款功能强大的文本编辑器,可以帮助开发者提高工作效率。在本文中,我们将讲解 Sublime Text 3 的快捷键大全以及如何配置编译环境。 Sublime Text 3 快捷键大全 Sublime Text 3 支持各种快捷键操作,以下是一些常用快捷键列表。 快捷键 …

    Java 2023年5月26日
    00
  • JavaAPI的使用方法详解

    Java API 的使用方法详解 什么是 Java API Java API(Application Programming Interface,应用程序编程接口)是 Java 开发的核心部分,它为程序员提供了许多系统类和接口,这些类和接口可以用来构建和处理各种 Java 应用程序。 Java API 包括标准库(Java SE)和企业库(Java EE),…

    Java 2023年5月23日
    00
  • Java8 LocalDateTime极简时间日期操作小结

    Java8 LocalDateTime极简时间日期操作小结 Java8提供了LocalDateTime类来处理日期和时间,其提供了丰富的API,可以简化我们的时间日期操作。本文将详细介绍LocalDateTime的常用API及示例操作。 1. LocalDateTime类 LocalDateTime类是Java8新增的一个日期时间类,表示不带时区的日期时间,…

    Java 2023年5月20日
    00
  • 基于Java实现二维码的生成和解析

    基于Java实现二维码的生成和解析 一、背景介绍 二维码是一种矩阵式的条码,是快速响应码(QR Code)的简称,由日本的QR Code发明并推广至全球。近年来,随着智能手机的广泛普及,二维码已经成为了一种快速传递信息的便捷方式,在生活中广泛使用。在Java中,可以使用第三方库生成和解析二维码,其中Zxing是一个常用的库。 二、生成二维码 1. 引入依赖 …

    Java 2023年5月20日
    00
  • springboot如何为web层添加统一请求前缀

    为web层添加统一请求前缀可以通过Spring Boot提供的@RestControllerAdvice注解来实现,具体步骤如下: 步骤1:添加@RestControllerAdvice注解 在包含@Controller注解的基础类上添加@RestControllerAdvice注解,如下所示: @RestControllerAdvice public cl…

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