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编码之间的转换。

阅读剩余 58%

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

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

相关文章

  • editplus配置java编程环境详细介绍

    EditPlus配置Java编程环境详细介绍 EditPlus是一款文本编辑器,它可以为Java编程者提供良好的编程环境。以下是EditPlus的Java编程环境配置攻略,包括Java 开发工具包(JDK)和编译器环境的配置。 JDK安装 首先,我们需要下载最新的JDK。当前最新版本是JDK 16。通过Oracle官网下载JDK 安装程序并开始安装过程。 安…

    Java 2023年5月23日
    00
  • Spring + mybatis + mysql使用事物的几种方法总结

    Spring + Mybatis + MySQL 使用事物的几种方法总结 在 Spring + Mybatis + MySQL 项目中,我们经常需要使用事务来保证多个操作的一致性,或者保证某些操作的原子性。本文将总结一些使用事务的常用方法。 1. 声明式事务 1.1 基于注解的事务管理 1.1.1 配置数据源 首先需要在 Spring 的配置文件中配置数据源…

    Java 2023年5月20日
    00
  • Struts2 通过ognl表达式实现投影

    下面是详细的讲解: 概述 Struts2 是一个优秀的 Java Web 应用框架,它的表单标签库可以很方便地实现表单的输入和输出。但有时候,我们也需要一些特殊的操作,比如使用投影(projection)来显示指定的数据,此时,ognl 表达式就可以派上用场了。 步骤 1. 配置Struts2引用ognl 在 struts.xml 文件中配置如下: <…

    Java 2023年5月20日
    00
  • 浅谈Java多进程程序的运行模式

    下面是“浅谈Java多进程程序的运行模式”的完整攻略。 简介 在Java编程中,多进程程序指的是在一个程序中创建多个进程进行并行处理的程序。多进程程序可以提高程序效率,增加程序的稳定性和可扩展性。本文主要讨论Java多进程程序的运行模式。 Java多进程程序的运行模式 Java多进程程序的运行模式可以分为以下几种: 1. 多进程只读 在这种模式中,多个进程之…

    Java 2023年5月30日
    00
  • SpringBoot 表单提交全局日期格式转换器实现方式

    下面就是 “SpringBoot 表单提交全局日期格式转换器实现方式” 的完整攻略。 1. 背景 在 SpringBoot 中,表单提交中的日期格式转换一直是困扰开发者的问题。SpringBoot 提供了很多方式解决这个问题,其中最简单的方式就是通过实现全局日期格式转换器来解决。 2. 实现方式 以下是实现全局日期格式转换器的步骤: 2.1 新建全局日期格式…

    Java 2023年5月19日
    00
  • angular实现input输入监听的示例

    下面我将向你详细讲解如何使用Angular实现input输入监听的示例。 1. 为input添加ngModel指令 首先,我们需要在HTML页面中给input元素添加ngModel指令,利用双向绑定机制将输入的内容与组件中的属性相绑定,从而实现输入监听。 示例代码如下: <input type="text" [(ngModel)]=…

    Java 2023年6月15日
    00
  • java实现建造者模式(Builder Pattern)

    下面我就详细讲解一下“Java实现建造者模式(Builder Pattern)”的完整攻略。 什么是建造者模式? 建造者模式是一种对象创建型设计模式,它允许你创建不同风格的对象,同时避免构造器污染问题。在该模式中,我们将构造过程分步进行,使得在创建对象时能够更加灵活地控制每个构造步骤,从而创建不同类型的对象。 建造者模式的角色 建造者模式中有以下几个角色: …

    Java 2023年5月18日
    00
  • Java递归如何正确输出树形菜单

    Java递归可以非常方便地实现树形菜单的输出,具体实现步骤包括: 第一步:定义树形结构 在Java中,可以通过定义一个类来表示树形结构,类中包含一个名称、一个值和一个子节点列表。代码如下: public class TreeNode { private String name; // 名称 private String value; // 值 private…

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