最近懒得动,博客很久没更了。

现在很多云服务,图片保存在网络中了。或者对接其他系统,资源也都是拿到的地址。由于我方服务器处理器内存磁盘空间都较小,想直接拿到网络图片地址的base64值。

以前的方法是先把网络图片下载到服务器,然后转base64,耗费服务器资源。弃之!

方法来源于网友,本博客只是收录:

通用方法:

/*** 将网络图片编码为base64** @param url* @return* @throws*/public static String encodeImageToBase64(URL url) throws Exception {//将图片文件转化为字节数组字符串,并对其进行Base64编码处理System.out.println("图片的路径为:" + url.toString());//打开链接HttpURLConnection conn = null;try {conn = (HttpURLConnection) url.openConnection();//设置请求方式为"GET"conn.setRequestMethod("GET");//超时响应时间为5秒conn.setConnectTimeout(5 * 1000);//通过输入流获取图片数据InputStream inStream = conn.getInputStream();//得到图片的二进制数据,以二进制封装得到数据,具有通用性ByteArrayOutputStream outStream = new ByteArrayOutputStream();//创建一个Buffer字符串byte[] buffer = new byte[1024];//每次读取的字符串长度,如果为-1,代表全部读取完毕int len = 0;//使用一个输入流从buffer里把数据读取出来while ((len = inStream.read(buffer)) != -1) {//用输出流往buffer里写入数据,中间参数代表从哪个位置开始读,len代表读取的长度outStream.write(buffer, 0, len);}//关闭输入流inStream.close();byte[] data = outStream.toByteArray();//对字节数组Base64编码BASE64Encoder encoder = new BASE64Encoder();String base64 = encoder.encode(data);System.out.println("网络文件[{}]编码成base64字符串:[{}]"+url.toString()+base64);return base64;//返回Base64编码过的字节数组字符串} catch (IOException e) {e.printStackTrace();throw new Exception("图片上传失败,请联系客服!");}}

调用该方法(转码的base64值不带前缀,需自行添加):

URL url = new URL(user.getPicture());
String base64str=encodeImageToBase64(url);

阿里云的API我用得少,也找了一个,我用永久地址的图片(公共读的bucket)测试发现不行,还没有用私有bucket的图片地址测试,有时间再说,代码见下:

public static String getBase64FromUrl(String imgUrl) throws IOException {String prfFix = "data:image/" +   "jpeg;base64,";OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);GeneratePresignedUrlRequest req = new GeneratePresignedUrlRequest(bucketName,imgUrl, HttpMethod.GET);req.setExpiration(new Date(new Date().getTime()+1000L * 60L * 60L));req.setProcess(prfFix);URL signedUrl = ossClient.generatePresignedUrl(req);System.out.println(signedUrl.toString());HttpClient client = new DefaultHttpClient();HttpGet get = new HttpGet(signedUrl.toString());HttpResponse response = client.execute(get);if (response.getStatusLine().getStatusCode() == 200){HttpEntity entity = response.getEntity();byte[] data = EntityUtils.toByteArray(entity);BASE64Encoder encoder = new BASE64Encoder();String encode = encoder.encode(data);return encode;}else {return null;}}

网络图片地址直接转Base64相关推荐

  1. 网络图片url转换成base64

    根据图片url转base64 网上查找的转换方法用的包是sun.misc.BASE64Encoder,需要导jar包,这里换成了java.util.Base64,可以直接使用,话不多说,代码如下: i ...

  2. JAVA 图片地址路径转换 Base64 工具类

    工具类代码: import sun.misc.BASE64Encoder; import java.io.ByteArrayOutputStream; import java.io.FileInput ...

  3. 根据图片地址src转base64格式

    本地地址转换不需要考虑跨域问题 但图片是网上的链接需要解决浏览器提示的跨域问题 本人解决方法是chrome右键属性打开 目标加–args --disable-web-security --user-d ...

  4. 根据网络图片地址获取资源的字节流

    /*** 根据地址获得数据的字节流* @param strUrl 网络连接地址* @return*/ private static byte[] getImageFromNetByUrl(String ...

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

    工作中遇到通过图片的url获取图片base64位的需求.一开始是用网上的方法,通过工具类Toolkit,虽然实现的代码比较简短,不过偶尔会遇到图片转成base64位不正确的情况,至今不知道为啥. 之后 ...

  6. 通过网络图片地址,保存图片到本地,使用File打开图片

    /*** 保存图片到本地* @param fileUrl 图片地址* @return*/ public static File saveImg(String fileUrl){//截取图片后缀名if( ...

  7. img标签src引用网络图片,页面不显示,返回403错误,网络图片地址在浏览器能加载,放html却不能显示

    在html页面加入<meta name="referrer" content="no-referrer">标签,就可以解决页面加载网络图片的问题, ...

  8. 网络图片地址转为字节流

    public class GetByteByNetUrl {/** * 根据地址获得数据的字节流 * @param strUrl 网络连接地址 * @return */ public static b ...

  9. 图片转Base64 编码工具类

    一.简介:本工具类包含本地图片转Base64编码 和 远程图片转 Base64编码 二.代码实例 package org.jeecg.common.util;import java.io.ByteAr ...

  10. vue项目将页面生成pdf

    项目场景: vue项目运行在移动端(企业微信聊天栏工具.企业微信浏览器.微信浏览器.外部浏览器),PC端(微信浏览器.其他厂商浏览器),利用html2canvas将页面生成图片文件,并采用jspdf将 ...

最新文章

  1. 搭建Hexo部署到github上
  2. C++接收字符串数组_C++模拟面试:从数组“紧凑”操作说开来
  3. cocos2d-x环境配置和常见问题
  4. LVS+Keepalived 高可用群集的介绍和搭建步骤
  5. form表单的一个页面多个上传按钮实例
  6. war包部署-排除内嵌的tomcat
  7. centos 离线安装mysql_CentOS6离线安装mysql-5.7.25
  8. Redis中的管道有什么用?
  9. 学习C语言必须掌握的10个经典的C语言小程序
  10. npm下载以来版本问题 npm ERR! code ERESOLVE
  11. Bootstrap实战(第一弹:栅格实现5等分或8等分)
  12. Tesseract OCR图片提取中文并转换为Excel的示例(附Python代码)
  13. Mixamo动画导入Unity中常见问题
  14. Mr. Kitayuta vs. Bamboos
  15. 通向互联网未来的七个路标
  16. 旅游类App的原型制作分享
  17. HTML插入空格 HTML多个空格 HTML实体
  18. spss菜单小介绍【跟阿婷一起学spss 03 在入坑边缘疯狂试探】
  19. flutter git 拉不起来_这些基础不牢固,我们的蛙泳就别想拉起来
  20. 【报表开发】:BI---新视界---请休假个人报表

热门文章

  1. wireshark排查网络延迟问题
  2. Simon的新中文“百万格子”重磅推出
  3. 百度文库上传总是被私有,如何正确上传百度文库
  4. 2005 年下半年程序员上 下午试卷
  5. python 处理英文步骤
  6. sql语句左连接时的ON AND用法
  7. Borůvka算法与异或生成树
  8. ISP、IAP、DFU和bootloader
  9. kubernetes Auditing 实战
  10. Crashing Balloon