Chinaunix首页 | 论坛 | 博客
  • 博客访问: 318910
  • 博文数量: 287
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2965
  • 用 户 组: 普通用户
  • 注册时间: 2019-06-17 10:57
文章分类

全部博文(287)

文章存档

2022年(85)

2021年(201)

2019年(1)

我的朋友

分类: Java

2022-01-13 09:14:19


点击(此处)折叠或打开


  1. package org.fh.util;

  2. import java.io.FileInputStream;
  3. import java.io.FileOutputStream;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.io.OutputStream;

  7. import org.apache.commons.codec.binary.Base64;


  8. /**
  9.  * 说明:BASE64处理
  10.  * 作者:FH Admin
  11.  * from:fhadmin.cn
  12.  */
  13. public class ImageAnd64Binary {
  14.     
  15.     public static void main(String[] args) {
  16.         String imgSrcPath = "H:/1.jpg";         // 生成64编码的图片的路径
  17.         String imgCreatePath = "H:/123.png";     // 将64编码生成图片的路径
  18.         imgCreatePath = imgCreatePath.replaceAll("\\\\", "/");
  19.         System.out.println(imgCreatePath);
  20.         String strImg = getImageStr(imgSrcPath);
  21.         System.out.println(strImg);
  22.         generateImage(strImg, imgCreatePath);
  23.     }

  24.     /**
  25.      * 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
  26.      *
  27.      * @param imgSrcPath
  28.      * 生成64编码的图片的路径
  29.      * @return
  30.      */
  31.     public static String getImageStr(String imgSrcPath) {
  32.         InputStream in = null;
  33.         byte[] data = null;
  34.         // 读取图片字节数组
  35.         try {
  36.             in = new FileInputStream(imgSrcPath);
  37.             data = new byte[in.available()];
  38.             in.read(data);
  39.             in.close();
  40.         } catch (IOException e) {
  41.             e.printStackTrace();
  42.         }
  43.         
  44.         // 对字节数组Base64编码
  45.         return Base64.encodeBase64String(data);// 返回Base64编码过的字节数组字符串
  46.     }

  47.     /**
  48.      * 对字节数组字符串进行Base64解码并生成图片
  49.      *
  50.      * @param imgStr
  51.      * 转换为图片的字符串
  52.      * @param imgCreatePath
  53.      * 将64编码生成图片的路径
  54.      * @return
  55.      */
  56.     public static boolean generateImage(String imgStr, String imgCreatePath) {
  57.         if (imgStr == null) // 图像数据为空
  58.             return false;
  59.         try {
  60.             // Base64解码
  61.             byte[] b = Base64.decodeBase64(imgStr);
  62.             for (int i = 0; i < b.length; ++i) {
  63.                 if (b[i] < 0) {// 调整异常数据
  64.                     b[i] += 256;
  65.                 }
  66.             }
  67.             OutputStream out = new FileOutputStream(imgCreatePath);
  68.             out.write(b);
  69.             out.flush();
  70.             out.close();
  71.             return true;
  72.         } catch (Exception e) {
  73.             return false;
  74.         }
  75.     }

  76. }


阅读(197) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~