java中图片文件和base64编码的转换

在线图片转base64编码

  import javax.imageio.ImageIO;  import java.awt.image.BufferedImage;  import java.io.ByteArrayOutputStream;  import java.io.IOException;  import java.net.URL;  import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
  /**
     * 下载图片并转换成base64格式
     *
     * @param imageUrl 图片URL
     *
     * @return 图片base64编码
     */
    private String downLoadImageToBase64(String imageUrl) throws Exception{
        logger.info("chainserviceImpl.downLoadImageToBase64,start,imageUrl:{}",imageUrl);
        if(StringUtils.isBlank(imageUrl)){
            throw new JobException("人脸识别,人脸图片url不能为空");
        }
        //下载图片
        BufferedImage image =null;
        URL url = new URL(imageUrl);
        image = ImageIO.read(url);

        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        String type = StringUtils.substring(imageUrl, imageUrl.lastIndexOf(".") + 1);
        ImageIO.write(image, type, bos);
        byte[] imageBytes = bos.toByteArray();
        String imageString = Base64.encode(imageBytes);
        bos.close();
        logger.info("chainserviceImpl.downLoadImageToBase64,end,imageUrl:{}",imageUrl);

        if(StringUtils.isBlank(imageString)){
            throw new JobException("获取人脸图片base64编码失败");
        }
        return imageString;
    }

本地图片转base64编码

  import java.nio.file.Files;  import java.nio.file.Paths;    import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
  /**
     * 本地图片转base64编码
     *
     * @param filePath 文件图片所在路径
     *
     * @return base64编码
     */
    public String imageToBase64(String filePath) throws Exception{
        if(StringUtils.isBlank(filePath)){
            return null;
        }
        String encode="";
        try{
            byte[] bytes = Files.readAllBytes(Paths.get(filePath));
            encode = Base64.encode(bytes);
        }catch (Exception e){
            throw e;
        }
        return encode;
    }

base64编码转图片

    import java.nio.file.Files;
    import java.nio.file.Paths;
    import java.nio.file.StandardOpenOption;

    /**
     * base64编码转成图片文件
     *
     * @param base64 图片的base64编码
     * @param filePath 图片文件的保存路径
     *
     * @return
     * @throws Exception
     */
    public static String decryptByBase64(String base64, String filePath) throws Exception{
        if (base64 == null && filePath == null) {
            return "生成文件失败,请给出相应的数据。";
        }
        try {
            Files.write(Paths.get(filePath),Base64.decode(base64), StandardOpenOption.CREATE);
        } catch (IOException e) {
            throw e;
        }
        return "指定路径下生成文件成功!";
    }

原文地址:https://www.cnblogs.com/htyj/p/12096696.html

时间: 2024-10-09 11:59:55

java中图片文件和base64编码的转换的相关文章

java中图片文件的传输及显示(Socket以及ServerSocket演示)

//客户端部分 package testSix; import java.awt.Graphics; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket; import java.util.Iterator; import javax.imageio.ImageIO; impo

Java中图片文件和字符串的相互转化

import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; im

java中图片文件的判断

javax.imageio 类 ImageIO BufferedImage bi = ImageIO.read(resFile);//resFile --- InputStream if(bi == null){ System.out.println(此文件不为图片文件); } try {//判断是否为图片文件并且返回图片的格式! ImageInputStream iis = ImageIO.createImageInputStream(o); // Find all image readers

将图片转化为base64编码字符串

pom依赖 <dependency> <groupId>org.ops4j.base</groupId> <artifactId>ops4j-base-net</artifactId> <version>1.5.0</version> </dependency> import org.ops4j.net.Base64Encoder; /** * 根据图片地址转换为base64编码字符串 * @param img

Java学习之道:Java中十个常见的违规编码

最近,我给Java项目做了一次代码清理工作.经过清理后,我发现一组常见的违规代码(指不规范的代码并不表示代码错误)重复出现在代码中.因此,我把常见的这些违规编码总结成一份列表,分享给大家以帮助Java爱好者提高代码的质量和可维护性. 这份列表没有依据任何规则或顺序,所有的这些都是通过代码质量工具包括CheckStyle,FindBugs和PMD检查出.一起来看下: 一.Eclipse编译器提供源代码格式输入 Eclipse提供自动源码格式选项,并且组织输入(删除未使用的代码).你可以使用下面的这

java中Jnotify文件监视库的使用

jnotify-0.94 下载地址:http://download.csdn.net/detail/zxnlmj/7499157 本人测试环境为win7环境,使用Myeclipse 1.建一个java或者javaweb项目... 2.将jnotify-lib-0.94压缩包解压缩,添加其中的jnotify-0.94.jar到项目中(java项目需要手动build to path,javaweb不需要). 3.建立测试类JnotifyTest.java如下,使用junit进行测试: package

Java中读取文件

Java中读取文件,去除一些分隔符,保存在多维数组里面 1 public void readFile(String filePath) 2 { 3 File file=new File(filePath); 4 ArrayList<String[]> dataArray=new ArrayList<String[]>(); 5 try{ 6 String str=new String(); 7 BufferedReader in=new BufferedReader(new Fil

Java中的文件操作

在使用计算机编程中,常常会用到对于文件的操作,以下是我对于Java中文件的相关内容学习之后的一个总结和在学习过程中遇到的一些问题. 一.什么是文件 对于文件进行操作,首先我们要知道什么是文件.在此之前,我们要知道,计算机其实就是一个文件系统.在计算机中,我们能在硬盘中看到的所有东西都叫文件.由此看来,计算机中文件是一个很广的范围.事实上,计算机中文件被分为了3种,一个是标准文件,一个是目录文件,还有一个就是虚拟内存文件. 这三种对于文件的分类没有一个明确的定义,后缀名是(.txt..doc..m

Java中移动文件或目录的方法盘点

本文不再更新,可能存在内容过时的情况,实时更新请移步原文地址:Java中移动文件或目录的方法盘点: import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; public class M