java远程获取图片生成base64串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java远程获取图片生成base64串相关的知识,希望对你有一定的参考价值。

说下背景,项目中遇到前端js获取图片发生跨域的问题,服务器端又不支持匿名访问,只能通过服务器获取图片base64码进行展示。代码如下:下载

Java代码  技术分享

  1. /** 

  2.  * 远程读取image转换为Base64字符串 

  3.  * @param imgUrl 

  4.  * @return 

  5.  */  

  6. private String Image2Base64(String imgUrl) {  

  7.     URL url = null;  

  8.     InputStream is = null;   

  9.     ByteArrayOutputStream outStream = null;  

  10.     HttpURLConnection httpUrl = null;  

  11.     try{  

  12.         url = new URL(imgUrl);  

  13.         httpUrl = (HttpURLConnection) url.openConnection();  

  14.         httpUrl.connect();  

  15.         httpUrl.getInputStream();  

  16.         is = httpUrl.getInputStream();            

  17.           

  18.         outStream = new ByteArrayOutputStream();  

  19.         //创建一个Buffer字符串  

  20.         byte[] buffer = new byte[1024];  

  21.         //每次读取的字符串长度,如果为-1,代表全部读取完毕  

  22.         int len = 0;  

  23.         //使用一个输入流从buffer里把数据读取出来  

  24.         while( (len=is.read(buffer)) != -1 ){  

  25.             //用输出流往buffer里写入数据,中间参数代表从哪个位置开始读,len代表读取的长度  

  26.             outStream.write(buffer, 0, len);  

  27.         }  

  28.         // 对字节数组Base64编码  

  29.         return new BASE64Encoder().encode(outStream.toByteArray());  

  30.     }catch (Exception e) {  

  31.         e.printStackTrace();  

  32.     }  下载

  33.     finally{  

  34.         if(is != null)  

  35.         {  

  36.             try {  

  37.                 is.close();  

  38.             } catch (IOException e) {  

  39.                 e.printStackTrace();  

  40.             }  

  41.         }  

  42.         if(outStream != null)  

  43.         {  

  44.             try {  

  45.                 outStream.close();  

  46.             } catch (IOException e) {  

  47.                 e.printStackTrace();  

  48.             }  

  49.         }  

  50.         if(httpUrl != null)  

  51.         {  

  52.             httpUrl.disconnect();  

  53.         }  

  54.     }  

  55.     return imgUrl;  

  56. }  


以上是关于java远程获取图片生成base64串的主要内容,如果未能解决你的问题,请参考以下文章

Java通过图片url地址获取图片base64位字符串的两种方式

java上传不同类型图片,保存数据库(Base64位图转网络图片)

30Android 将本地图片转换为Base64加密字符串及根据加密串反向生成图片

vue 上传图片时 base64 怎么传到java后台

echarts转为base64之后显示的图片不全

关于前端使用JavaScript获取base64图片大小的方法