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日

相关文章

  • SSH框架网上商城项目第16战之Hibernate二级缓存处理首页热门显示

    首先对于这个攻略的标题,我们可以进行分析理解。 “SSH框架网上商城项目”:这个部分是指网上商城项目所使用的技术框架或开发方式,其中SSH框架通常指的是Spring + Struts2 + Hibernate。 “第16战”:这个部分是指在整个项目中,这是第16个完成的模块或任务。 “Hibernate二级缓存处理”:这个部分是指在这个模块中,我们要讲解的是…

    Java 2023年5月20日
    00
  • Java将CSV的数据发送到kafka的示例

    下面是Java将CSV的数据发送到kafka的示例的详细攻略: 准备工作 首先,在本地安装kafka和创建一个名为test的topic。同时,在项目中引入以下依赖库: <dependencies> <dependency> <groupId>org.apache.kafka</groupId> <arti…

    Java 2023年5月20日
    00
  • java中Executor,ExecutorService,ThreadPoolExecutor详解

    Java中的Executor框架提供了一组API,可用于优雅地管理多线程、线程池和异步调用。主要由三个接口组成:Executor、ExecutorService和ThreadPoolExecutor。 Executor接口 Executor是一个简单的接口,它提供了一种方法将任务提交到线程中执行。 其定义如下: public interface Execut…

    Java 2023年5月19日
    00
  • JAVA中Context的详细介绍和实例分析

    我来为你详细讲解Java中Context的介绍和实例分析。我的回答中将包括以下内容: Context的概念及作用 Context常见类型及其实现方式 实例分析1:如何在Servlet中使用Context 实例分析2:如何在Android中使用Context 1. Context的概念及作用 Context在Java中是一个很重要的概念,可以理解为上下文环境的…

    Java 2023年5月24日
    00
  • SpringMVC整合SpringSession 实现sessiong

    SpringMVC整合SpringSession 实现session 在Web应用程序中,Session是一种非常重要的机制,它可以帮助我们在不同的请求之间共享数据。SpringMVC提供了与SpringSession集成的支持,可以帮助我们更方便地管理Session。本文将详细介绍如何使用SpringMVC整合SpringSession实现Session管…

    Java 2023年5月17日
    00
  • java使用websocket,并且获取HttpSession 源码分析(推荐)

    Java使用WebSocket并获取HttpSession的攻略 WebSocket是一种双向通信协议,能够建立客户端和服务端之间的实时通信通道。本攻略将详细讲解Java如何使用WebSocket并获取HttpSession,步骤如下: 步骤1:添加依赖 在项目的pom.xml文件中添加以下依赖: <dependency> <groupId…

    Java 2023年5月23日
    00
  • 详解springSecurity之java配置篇

    关于“详解springSecurity之java配置篇”完整攻略,我们来详细说一下。 简介 SpringSecurity是基于Spring框架的安全框架,主要解决的是在应用程序中如何安全地进行身份认证和授权。本篇文档主要讲解如何使用Java配置的方式来进行SpringSecurity的配置。 步骤 1. 添加spring-security配置依赖 在 pom…

    Java 2023年5月20日
    00
  • jsp实现登录界面

    那么我们首先了解一下jsp实现登录界面的步骤: 创建一个jsp文件用于展示登录界面,包含用户名和密码输入框、登录按钮等组件。 编写一个servlet用于处理用户提交的登录表单数据,校验用户名和密码是否正确。 如果验证通过,将用户信息保存到会话中,然后跳转到登录成功的页面。 如果验证不通过,返回登录界面,并在界面上展示错误提示信息。 下面是一个示例: 创建一个…

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