2019独角兽企业重金招聘Python工程师标准>>>

*本事例主要讲了如下几点:
 * 1:将图片转换为BASE64加密字符串.
 * 2:将图片流转换为BASE64加密字符串.
 * 3:将BASE64加密字符串转换为图片.

* 4:在jsp文件中以引用的方式和BASE64加密字符串方式展示图片.

首先看工具类:


import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;  import javax.imageio.ImageIO;  import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;  /** * @author IluckySi * @since 20150122 */
public class ImageUtil {  private static BASE64Encoder encoder = new sun.misc.BASE64Encoder();  private static BASE64Decoder decoder = new sun.misc.BASE64Decoder();  /** * 将图片转换为BASE64加密字符串. * @param imagePath 图片路径. * @param format 图片格式. * @return */  public String convertImageToByte(String imagePath, String format) {  File file = new File(imagePath);  BufferedImage bi = null;  ByteArrayOutputStream baos = null;  String result = null;  try {  bi = ImageIO.read(file);  baos = new ByteArrayOutputStream();  ImageIO.write(bi, format == null ? "jpg" : format, baos);  byte[] bytes = baos.toByteArray();  result = encoder.encodeBuffer(bytes).trim();  System.out.println("将图片转换为BASE64加密字符串成功!");  } catch (IOException e) {  System.out.println("将图片转换为 BASE64加密字符串失败: " + e);  } finally {  try {  if(baos != null) {  baos.close();  baos = null;  }  } catch (Exception e) {  System.out.println("关闭文件流发生异常: " + e);  }  }  return result;  }  /** * 将图片流转换为BASE64加密字符串. * @param imageInputStream * @param format 图片格式. * @return */  public String convertImageStreamToByte(InputStream imageInputStream, String format) {  BufferedImage bi = null;  ByteArrayOutputStream baos = null;  String result = null;  try {  bi = ImageIO.read(imageInputStream);  baos = new ByteArrayOutputStream();  ImageIO.write(bi, format == null ? "jpg" : format, baos);  byte[] bytes = baos.toByteArray();  result = encoder.encodeBuffer(bytes).trim();  System.out.println("将图片流转换为BASE64加密字符串成功!");  } catch (IOException e) {  System.out.println("将图片流转换为 BASE64加密字符串失败: " + e);  } finally {  try {  if(baos != null) {  baos.close();  baos = null;  }  } catch (Exception e) {  System.out.println("关闭文件流发生异常: " + e);  }  }  return result;  }  /** * 将BASE64加密字符串转换为图片. * @param base64String * @param imagePath 图片生成路径. * @param format 图片格式. */  public void convertByteToImage(String base64String, String imagePath, String format) {  byte[] bytes = null;  ByteArrayInputStream bais = null;  BufferedImage bi = null;  File file = null;  try {  bytes = decoder.decodeBuffer(base64String);  bais = new ByteArrayInputStream(bytes);  bi = ImageIO.read(bais);  file = new File(imagePath);  ImageIO.write(bi, format == null ? "jpg" : format, file);  System.out.println("将BASE64加密字符串转换为图片成功!");  } catch (IOException e) {  System.out.println("将BASE64加密字符串转换为图片失败: " + e);  } finally {  try {  if(bais != null) {  bais.close();  bais = null;  }  } catch (Exception e) {  System.out.println("关闭文件流发生异常: " + e);  }  }  }
}  

然后看测试类:

import java.io.InputStream;  import com.ilucky.util.image.ImageUtil;  /** * 本事例主要讲了如下几点: * 1:将图片转换为BASE64加密字符串. * 2:将图片流转换为BASE64加密字符串. * 3:将BASE64加密字符串转换为图片. * 4:在jsp文件中以引用的方式和BASE64加密字符串方式展示图片. * @author IluckySi * @since 20150122 */
public class MainTest {  public static void main(String[] args) {  ImageUtil imageUtil = new ImageUtil();  String base64String = imageUtil.convertImageToByte("D:\\test.png", "png");  System.out.println(base64String);  imageUtil.convertByteToImage(base64String, "D:\\test2.png", "png");  InputStream is = MainTest.class.getResourceAsStream("test.png");  String base64String2 = imageUtil.convertImageStreamToByte(is, "png");  System.out.println(base64String2);  imageUtil.convertByteToImage(base64String2, "D:\\test3.png", "png");  }
}  

最后看jsp文件:

<!DOCTYPE html>
<html>  <head>  <title>index.html</title>  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  <meta http-equiv="description" content="this is my page">  <meta http-equiv="content-type" content="text/html; charset=UTF-8">  </head>  <body>  <!--   data表示取得数据的协定名称,image/png是数据类型名称,base64 是数据的编码方法,  逗号后面是image/png文件base64编码后的数据.   data:text/css;base64,base64编码的CSS代码   data:text/javascript,Javascript代码   data:text/javascript;base64,base64编码的Javascript代码   data:image/gif;base64,base64编码的gif图片数据   data:image/png;base64,base64编码的png图片数据   data:image/jpeg;base64,base64编码的jpeg图片数据   data:image/x-icon;base64,base64编码的icon图片数据   -->  <img src="test.png"/>  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAFYklEQVR42sVXfUyUdRz/8XKhMZQO  7nmeuwMFwrBEVJqgDOcUHZvNuTarrdKam0zdKrckAy4goowxbaM5hE1yjVVzLjLRokBFz2qsQPGF  F8vmamtkL4s4OHDy6ff5EQcXx91hf/jHB777fj8v3+d57p7nOQFA3EuoPxcLhV90SlxziOSeUrHd  WRz5fv1uc1fl03OGizdGgmBd/5K5mzNyyO0M4EkEXqBAiI58Ed9WEFp1+MXYm1vW68hKM7AwJR5W  mx3RZqsCa/Y4I4dcaqilx10t0PGqCOssEjuvH7H9vW1zEgzNgK5ZYVh02HUN86w65tvGwJo9zhRH  cqmhlh70mtEC7a8Ie2ep6dPfW5eM3OnbhMo9S6GbLV6h04Eccqmhlh70omdQC3TsFbbLZaYL/W2Z  wA+PYbQ9B780rUJu1nxoMZaAC5BDLjXU0oNe9KS33wXkqRKXXguv+as1HejOxYhzNdwS+G4NjlUs  U0cX7+cscEYOudRQSw960ZPezPC9QIE69dv6Pk4exLX1GDm/Cu5z2Qojzmy4WrOxZUOSPELNz9Fr  ikMuNR699KInvZkx/sH0WqB9rzCuH5j7Mzrk1uel8HQW3GcmgK+y4axOR0qCVX7gpoazxxk55E7W  0oue9GYGs7wXKFCnP7+/cdEovs7GUHMm3C0rvHD7jMTZFSjYugAW89RvAXuckUPuf/X0pDczmMVM  zwJyI8v3lVFX7pzLxMiXGXB/sdwncDoDvfXLkJFqh1WbuBSs2eOMnOn09GYGs5g5eYHcXw/HAWcz  MfRZOtwSQz7APloexcHdD0GLnVhAlzV7nPnT8j8zmMVMzwKdjtCy/qPJuN0kSY1L/OL250tw61ga  Nqy0Q7doCqzZ4yygXmYwi5meBa6Wmk4NNaRgpDEVQ8cX+YVbAk2L0VCcrL52BGv23AG0hMqQWcz0  LNBTHtGFkw9D4UQQkLxR+X/LujiF0RMz0xIqc3yBb4sifmp+80G0lCcFhWYJZ0USDu6ar8C6OUit  0sssZnoWaNhh+tFqGIg3dM9p9QvJM5t1vP1cvALrmWiZxUzPAidfMLWlJBjqZhKMiRarY+UiAzer  5ymwZi8Y7dgNywAzPQuc3xNet3Ypv8+Bn3Y0sUqTQ3k24MM4BdZW3f9zYuKeoYNZzPQscNkRsv35  1WbExhoBDXT5zN+4XMcfNVYMv2dTYM0eZ4H0zGAWMz0L9JaK1P1PRQ7EWa0Bn3aJdh2NL2vAEQ2u  2jGwZo+zQHq7zJBZrusyc9IZEOEX8sM/yFxokafI8LO9jrx1GgaqY+CujYHr0BhYs5eXoynO9Kff  ADOc+eEfyUyT19Owp0SsKd0U5eYrlU+xvMaLk3S0OcxAbTRcB73BHmdpSWNcn5dPejNDZq2d8jiW  G4W07Q39JCctVr3T+br2ZY+bcac6CoPvzoGryhvscUaOr88CPenNDGb5fCPqKha2o3kRF1MTKfA+  +uxHNNx4IwrDVZFwveMbnJFD7uSzQC960psZft8Je4rFkzXPzh5eME+HTTfUs94mbxx1W+cCVbMw  uH82XNOAM3LIpUZppQe96EnvoN6K5TXaVfPMbCxO1BAVbeCJzBj89tYsDO+/DwOVEX5BDrmbpYZa  etCLnkG/ll8qEqK7WOQe32lybs54AKd23I/RA+EYqDAFBXJPSg219KAXPWf8y+iKQxhXHaLyRklI  363yUAzsC8OghGtfqE9wRg651FBLj7v/aTb+ul4oUi4VipIuh+i+WSKG+spC8Gd5CPr/BWv2OJOc  Hsl9XWoW/v/fht5LhLUXiARZb71cJOquFIlv5BH2EqzZ40xyEsm9OJMfp/cS/wC6xRqbyM2GFQAA  AABJRU5ErkJggg=="/>   </body>
</html>  

转载于:https://my.oschina.net/githubhty/blog/909085

图片base64编码的前端展示及后端解码,编码相关推荐

  1. java的图片上传与前端展示实例(Servlet+Jsp)

    java的图片上传与前端展示实例(Servlet+Jsp) 内容前瞻 1.关于路径 2.前端图片上传与展示 3.后台获取并保存 环境 1.前端jsp 2.服务器tomcat 3.服务端servlet ...

  2. 生成一维条形码并转换base64返回给前端展示

    项目场景: 提示:这里简述项目相关背景: 在后端随机生成一维条形码给前端展示 效果图: 引入pom <dependency><groupId>net.sf.barcode4j& ...

  3. base64图片展示(后端给base64数据,前端展示图片)

    <img :src="imageData" alt="" class="sign-img-style"> <script& ...

  4. java基础:map遍历使用;java使用 Patten 和Matches 进行正则匹配;后端传到前端展示图片三种情况,并保存到手机;

    文章目录 前言 一.map 遍历方法 二.java正则学习 三.后端传到前端图片三种情况 1. 图片流数据(InputStream) 转 base64,前端展示保存 a. 后端:输入流转base,直接 ...

  5. 视频编解码——编码流程介绍

    为什么需要编码? 原始视频数据很庞大,比如一个150分钟,30FPS,分辨率为720✖480的彩色电影需要占用280GB.无论是物理存储还是网络传输,这都是难以负担的.所以需要编码进行压缩. 编码方式 ...

  6. 图片上传流程前端上传文件后端保存文件并返回图片地址

    也是在最近一点时间写小demo 遇到的一些问题 比如在用户界面,用户选择本地的一张照片,前端把照片传到后端,后端怎么把照片保存到服务器,然后返回给 图片线上地址.也是找了一些文章,然后分享下. 技术 ...

  7. 前端传来的图片并保存_前端处理后端接口传递过来的图片文件

    背景 在之前,从来都是后端返一个图片地址,然后前端直接使用. 那如果后端返了一个图片文件过来,那要怎么做? 参考: vue axios请求图片流文件前端页面显示处理方法 background url ...

  8. 后端传输图片Base64数据到前端渲染

    后端传输图片Base64数据到前端渲染 后端代码 public String sendImg(LoginUser loginUser) {//在数据库中查找对应用户LoginUser loginUse ...

  9. 图片Base64编码

    图片处理在前端工作中可谓占据了很重要的一壁江山.而图片的 base64 编码可能相对一些人而言比较陌生,本文不是从纯技术的角度去讨论图片的 base64 编码.标题略大,不过只是希望通过一些浅显的论述 ...

最新文章

  1. (6)javascript的程序控制结构及语句-----(1)条件判断
  2. 从java中的hibernate看Ado.net 与NHibernate的关系
  3. PyQt编程之模态与非模态对话框(二)
  4. C#操作注册表增删改查及关机能保存问题
  5. java web 配置教程,javaWeb实战教程0-环境配置,javaweb实战教程0-
  6. 离散信号内插matlab,离散信号和系统实验报告.doc
  7. MySQL可以用localhost 连接,但不能用IP连接的问题
  8. 最小化或关闭时隐藏到系统托盘
  9. 如何使用SQL Server Reporting Services将数据格式转换为有价值的数据集
  10. 从零开始写项目第八篇【将未完成的项目发布在Tomcat上】
  11. http协议编程java_Java与Http协议的详细介绍
  12. [转]网络编程学习指南
  13. Linux中 vim 编辑器的使用【详细】
  14. 微信公众号图片上传接口实例|微信卡卷logo上传实例|微信会员卡logo上传实例
  15. Express框架概述
  16. java 时间计费_java 实现计费算法
  17. Python视频转换分辨率(附代码) | Python工具
  18. 苹果支付Java服务器实现
  19. 给随便一个字符串加单位
  20. xiunobbs装插件

热门文章

  1. Xshell评估过期处理方法(下载个人免费版本)
  2. 苹果手机扫描文件并转换格式,怎么把扫描文件转换成文字,扫描出来的文件格式换个可以复制的文字
  3. 数模算法 — 蒙特卡罗算法及Matlab案例
  4. 头条搜索官网认证说明
  5. docker 安装snipe-it
  6. Notepad++ 依照xml格式进行格式化显示
  7. 【Swift 60秒】51 - Closures as parameters
  8. 电影院里电影票和座位号的关系
  9. TP-LINK路由器如何设置上网
  10. python flask 直接调用摄像头直播