base64图片、字符串,编码解码互转工具类

base64图片、字符串,编码解码互转工具类

1、Base64Utils完成编码解码

@SuppressWarnings("restriction")
public class Base64Utils {

	/*
	 * public static void main(String[] args) throws Exception {
	 * 
	 * //本地图片地址 String url =
	 * "C:/Users/Administrator/Desktop/628947887489084892.jpg"; //在线图片地址 String
	 * string =
	 * "http://bpic.588ku.com//element_origin_min_pic/17/03/03/7bf4480888f35addcf2ce942701c728a.jpg";
	 * 
	 * String str = Base64Utils.ImageToBase64ByLocal(url);
	 * 
	 * String ste = Base64Utils.ImageToBase64ByOnline(string);
	 * 
	 * System.out.println(str);
	 * 
	 * Base64Utils.Base64ToImage(str, "C:/Users/Administrator/Desktop/test1.jpg");
	 * 
	 * Base64Utils.Base64ToImage(ste, "C:/Users/Administrator/Desktop/test2.jpg"); }
	 */

   /**
    * 本地图片转换成base64字符串
    *
    * @param imgFile 图片本地路径
    * @return
    */
   public static String ImageToBase64ByLocal(String imgFile) {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理


      InputStream in = null;
      byte[] data = null;

      // 读取图片字节数组
      try {
         in = new FileInputStream(imgFile);

         data = new byte[in.available()];
         in.read(data);
         in.close();
      } catch (IOException e) {
         e.printStackTrace();
      }
      // 对字节数组Base64编码
      BASE64Encoder encoder = new BASE64Encoder();

      return encoder.encode(data);// 返回Base64编码过的字节数组字符串
   }


   /**
    * 在线图片转换成base64字符串
    *
    * @param imgURL 图片线上路径
    * @return
    */
   public static String ImageToBase64ByOnline(String imgURL) {
      ByteArrayOutputStream data = new ByteArrayOutputStream();
      try {
         // 创建URL
         URL url = new URL(imgURL);
         byte[] by = new byte[1024];
         // 创建链接
         HttpURLConnection conn = (HttpURLConnection) url.openConnection();
         conn.setRequestMethod("GET");
         conn.setConnectTimeout(5000);
         InputStream is = conn.getInputStream();
         // 将内容读取内存中
         int len = -1;
         while ((len = is.read(by)) != -1) {
            data.write(by, 0, len);
         }
         // 关闭流
         is.close();
      } catch (IOException e) {
         e.printStackTrace();
      }
      // 对字节数组Base64编码
      BASE64Encoder encoder = new BASE64Encoder();
      return encoder.encode(data.toByteArray());
   }


   /**
    * base64字符串转换成图片
    *
    * @param imgStr      base64字符串
    * @param imgFilePath 图片存放路径
    * @return
    */
   public static boolean Base64ToImage(String imgStr, String imgFilePath) { // 对字节数组字符串进行Base64解码并生成图片

      if (isEmpty(imgStr)) // 图像数据为空
         return false;

      BASE64Decoder decoder = new BASE64Decoder();
      try {
         // Base64解码
         byte[] b = decoder.decodeBuffer(imgStr);
         for (int i = 0; i < b.length; ++i) {
            if (b[i] < 0) {// 调整异常数据
               b[i] += 256;
            }
         }

         OutputStream out = new FileOutputStream(imgFilePath);
         out.write(b);
         out.flush();
         out.close();

         return true;
      } catch (Exception e) {
         return false;
      }

   }

   public static boolean isEmpty(String input) {
      return input == null || input.equals("");
   }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值