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

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

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


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

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

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

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

[java] view plain copy
  1. packagebase64;
  2. importjava.awt.image.BufferedImage;
  3. importjava.io.ByteArrayInputStream;
  4. importjava.io.ByteArrayOutputStream;
  5. importjava.io.File;
  6. importjava.io.IOException;
  7. importjavax.imageio.ImageIO;
  8. importsun.misc.BASE64Decoder;
  9. importsun.misc.BASE64Encoder;
  10. publicclassTestImageBinary{
  11. staticBASE64Encoderencoder=newsun.misc.BASE64Encoder();
  12. staticBASE64Decoderdecoder=newsun.misc.BASE64Decoder();
  13. publicstaticvoidmain(String[]args){
  14. System.out.println(getImageBinary());//将图片转成base64编码
  15. base64StringToImage(getImageBinary());//将base64的编码转成图片
  16. }
  17. staticStringgetImageBinary(){
  18. Filef=newFile("d://1.jpg");
  19. BufferedImagebi;
  20. try{
  21. bi=ImageIO.read(f);
  22. ByteArrayOutputStreambaos=newByteArrayOutputStream();
  23. ImageIO.write(bi,"jpg",baos);
  24. byte[]bytes=baos.toByteArray();
  25. returnencoder.encodeBuffer(bytes).trim();
  26. }catch(IOExceptione){
  27. e.printStackTrace();
  28. }
  29. returnnull;
  30. }
  31. staticvoidbase64StringToImage(Stringbase64String){
  32. try{
  33. byte[]bytes1=decoder.decodeBuffer(base64String);
  34. ByteArrayInputStreambais=newByteArrayInputStream(bytes1);
  35. BufferedImagebi1=ImageIO.read(bais);
  36. Filew2=newFile("d://2.png");//可以是jpg,png,gif格式
  37. ImageIO.write(bi1,"jpg",w2);//不管输出什么格式图片,此处不需改动
  38. }catch(IOExceptione){
  39. e.printStackTrace();
  40. }
  41. }
  42. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值