java解析url的链接和参数_java根据url下载图片

java解析url的链接和参数_java根据url下载图片方法一Blob和FileReader对象实现原理:使用xhr请求图片,并设置返回的文件类型为Blob对象[xhr.responseType=“blob”],使用FileReader对象接收blob。getBase64(“https://fastmarket.oss-cn-shenzhen.aliyuncs.com/oss/static/other/1/images/baseMap_index.jpg”)//链接是你的网络图片functiongetBase64(imgUrl){

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

方法一 Blob和FileReader 对象

实现原理:
使用xhr请求图片,并设置返回的文件类型为Blob对象[xhr.responseType = “blob”],
使用FileReader 对象接收blob。

getBase64("https://fastmarket.oss-cn-shenzhen.aliyuncs.com/oss/static/other/1/images/baseMap_index.jpg")//链接是你的网络图片

function getBase64(imgUrl) {
  window.URL = window.URL || window.webkitURL;
  var xhr = new XMLHttpRequest();
  xhr.open("get", imgUrl, true);
  // 至关重要
  xhr.responseType = "blob";
  xhr.onload = function () {
    if (this.status == 200) {
      //得到一个blob对象
      var blob = this.response;
      console.log("blob", blob)
      // 至关重要
      let oFileReader = new FileReader();
      oFileReader.onloadend = function (e) {
        // 此处拿到的已经是 base64的图片了
        let base64 = e.target.result;
        console.log("方式一》》》》》》》》》", base64)
      };
      oFileReader.readAsDataURL(blob);
  }
  }
  xhr.send();
}

FileReader.readAsDataURL(blob);
参考链接:https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL

该readAsDataURL方法用于读取指定Blob或File的内容。读取操作完成后,loadend触发。那时,该result属性包含了一个base64编码的字符串。

方法二 canvas.toDataURL()方法

实现原理:
使用canvas.toDataURL()方法
需要解决图片跨域问题 image.crossOrigin = ‘’;
使用了Jquery库的$.Deferred()方法

let imgSrc = "https://fastmarket.oss-cn-shenzhen.aliyuncs.com/oss/static/other/1/images/baseMap_index.jpg";

//width、height调用时传入具体像素值,控制大小 ,不传则默认图像大小
function getBase64Image(img, width, height) {
  var canvas = document.createElement("canvas");
  canvas.width = width ? width : img.width;
  canvas.height = height ? height : img.height;
  var ctx = canvas.getContext("2d");
  ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
  var dataURL = canvas.toDataURL();
  return dataURL;
}
function getCanvasBase64(img) {
  var image = new Image();
  //至关重要
  image.crossOrigin = '';
  image.src = img;
  //至关重要
  var deferred = $.Deferred();
  if (img) {
    image.onload = function () {
      deferred.resolve(getBase64Image(image));//将base64传给done上传处理
      //document.getElementById("container2").appendChild(image);
    }
    return deferred.promise();//问题要让onload完成后再return sessionStorage['imgTest']
  }
}
getCanvasBase64(imgSrc)
  .then(function (base64) {
    // 这里拿到的是转换后的base64地址,可以做其他操作
    console.log("方式二》》》》》》》》》",base64);
  }, function (err) {
    console.log(err);
  });

HTMLCanvasElement.toDataURL() 方法返回一个包含图片展示的 data URI

参考链接:
https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLCanvasElement/toDataURL

参考链接:https://www.jb51.net/article/138809.htm

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193286.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • (转)postMessage使用方法

    (转)postMessage使用方法postMessage使用方法

    2022年10月29日
  • linux下发送邮件[通俗易懂]

    linux下发送邮件[通俗易懂]先安装一个mailxyuminstallmailx配置:126邮箱为例,自己去官网注册一个,在这里我注册了一个huangbaokangtest@126.com在/etc/mail.rc文件末尾加入如下配置setfrom=huangbaokangtest@126.comsetsmtp=smtp.126.comsetsmtp-auth-user=huangbaokangtes…

    2022年10月20日
  • Spring AOP 最热门面试题及答案「建议收藏」

    Spring AOP 最热门面试题及答案「建议收藏」译者的话前几天去京东面试,被问到AOP相关的问题,之前一直没有系统地学习相关的知识,答得不是很好。趁着假期,找了一下相关的资料,CSDN上有很多不错的文章,看了之后对AOP有比较好的理解了。然后Google了一下AOP相关面试题(AOPinterview),搜出来的第一条结果是一个叫HowToDoInJava的网站上的一篇文章TopSpringAOPIntervie…

    2022年8月11日
  • Linux删除软链接

    Linux删除软链接首先我们先来创建一个文件#mkdirtest_chk#touchtest_chk/test.txt#vimtest_chk/test.txt(这一步随便在这个test.txt里写点东东即可)下面我们来创建test_chk上当的软链接#ln-stest_chktest_chk_ln软链接创建好了,我们来看看怎么删除它正确的删除方式(删除软链接,

    2022年6月18日
  • linux 系统查看网卡配置信息_如何查看自己电脑网卡配置

    linux 系统查看网卡配置信息_如何查看自己电脑网卡配置  Linux系统查看网卡配置,有几种方式,分述如下。方法一:ifconfig命令查看设置网卡ifconfig:查看所有活动网卡信息,能查看IP地址和子网掩码,但是不能查看网关和DNS地址),还可以临时设置某一网卡的IP地址和子网掩码。[root@cloudgw~]#ifconfigeth0:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu1500inet172.19.243.202ne

    2022年10月19日
  • 【剑指offer】二叉搜索树的后序遍历序列

    【剑指offer】二叉搜索树的后序遍历序列

    2021年11月30日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号