• 将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片


    data格式的Url最直接的好处是,这些Url原本会引起一个新的网络访问,因为那里是一个网页的地址,现在不会有新的网络访问了,因为现在这里是网页的内容。这样做,会减少服务器的负载,当然同时也增加了当前网页的大小。所以对“小”数据特别有好处。

      另外听说这种方式可以将一些敏感的图片放进网页中...挺好玩的.....

     

        一、 在网页中查看图片的方法为:

         

    [html] view plaincopy
    1. <body>  
    2. <span><img width=100 height=100 src="data:image/gif;base64,(此处填图片转成base64编码后的编码)"/></span>  
    3. </body>  

        由于base64编码太占用篇幅因此仅仅用括号说明了一下。

        二、用Java将图片编码的代码,与将base64的编码转成图片的Java代码:

        

    [java] view plaincopy
    1. package base64;  
    2. import java.awt.image.BufferedImage;    
    3. import java.io.ByteArrayInputStream;    
    4. import java.io.ByteArrayOutputStream;    
    5. import java.io.File;    
    6. import java.io.IOException;    
    7. import javax.imageio.ImageIO;    
    8. import sun.misc.BASE64Decoder;    
    9. import sun.misc.BASE64Encoder;    
    10.     
    11. public class TestImageBinary {    
    12.     static BASE64Encoder encoder = new sun.misc.BASE64Encoder();    
    13.     static BASE64Decoder decoder = new sun.misc.BASE64Decoder();    
    14.         
    15.     public static void main(String[] args) {    
    16.             System.out.println(getImageBinary());  //将图片转成base64编码     
    17.         base64StringToImage(getImageBinary()); //将base64的编码转成图片   
    18.     }    
    19.         
    20.     static String getImageBinary(){    
    21.         File f = new File("d://1.jpg");           
    22.         BufferedImage bi;    
    23.         try {    
    24.             bi = ImageIO.read(f);    
    25.             ByteArrayOutputStream baos = new ByteArrayOutputStream();    
    26.             ImageIO.write(bi, "jpg", baos);    
    27.             byte[] bytes = baos.toByteArray();    
    28.                 
    29.             return encoder.encodeBuffer(bytes).trim();    
    30.         } catch (IOException e) {    
    31.             e.printStackTrace();    
    32.         }    
    33.         return null;    
    34.     }    
    35.         
    36.     static void base64StringToImage(String base64String){    
    37.         try {    
    38.             byte[] bytes1 = decoder.decodeBuffer(base64String);                  
    39.             ByteArrayInputStream bais = new ByteArrayInputStream(bytes1);    
    40.             BufferedImage bi1 =ImageIO.read(bais);    
    41.             File w2 = new File("d://2.png");//可以是jpg,png,gif格式    
    42.             ImageIO.write(bi1, "jpg", w2);//不管输出什么格式图片,此处不需改动    
    43.         } catch (IOException e) {    
    44.             e.printStackTrace();    
    45.         }    
    46.     }    
    47.     
    48. }
  • 相关阅读:
    超级女声杭州赛区7进5
    究竟怎么了?
    最近发现
    S2SH基于角色权限拦截
    基于S2SH的电子商务网站系统性能优化
    TSQL复习笔记(一)
    用户sa登录失败,该用户与可信sql server连接无关联
    SQL附加数据库报5120的错误的解决办法
    DotNet中配置文件的使用(一)
    JQuery中使用AJAX $.ajax(prop)方法详解
  • 原文地址:https://www.cnblogs.com/shipeng22022/p/4614155.html
Copyright © 2020-2023  润新知