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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • c语言push_back_pushback是什么意思

    c语言push_back_pushback是什么意思push_back()函数的用法函数将一个新的元素加到vector的最后面,位置为当前最后一个元素的下一个元素push_back()在Vector最后添加一个元素(参数为要插入的值)//在vec尾部添加10vector<int>vec;vec.push_back(10);//在容器中添加10intnum=10;vector<int&gt…

    2022年10月28日
  • PyTorch 实现 ResNet34 分类(数据cifar10)「建议收藏」

    PyTorch 实现 ResNet34 分类(数据cifar10)「建议收藏」    又到整理的时候了,这次参考torchvision里面的resnet34源代码,自己修改了一下,实现cifar10数据集的分类任务。    其实网络上已经有很多优秀的源代码了,没必要再写,如果执意要说个理由的话,就当是自己的笔记了哈哈,方便以后使用可以快速查阅。没别的,菜鸟就应该多积累。ResNet34大体结构:图片:来自《深度学习框架PyTorch:入门与实践》PyTorch…

  • iOS 获取本地图片尺寸_ios图片处理软件

    iOS 获取本地图片尺寸_ios图片处理软件有时候我们需要在代码中读取图片的URL,但是需要注意的是:在Assets中的图片,会经过编译无损压缩,无法通过Path读取,只能通过named方法读取,这种情况我们应该怎么获取图片URL了?

  • APAP代码(1)「建议收藏」

    APAP代码(1)「建议收藏」staticintVideoStitch(intargc,char*argv[]){ for(inti=0;i<argc;i++) printf(“%s\n”,argv[i]); intretval=parseCmdArgs(argc,argv); /*if(retval) returnretval;*/ is_camera=false; for(inti=0;i<video_names.size();i++) .

  • 简历项目

    简历项目

  • 一种Python工具的License授权机制

    一种Python工具的License授权机制作为一种流行语言,在不同的应用领域,利用Python书写的工具越来越多。Python具有应用领域广泛、简单易学、功能强大等特点,但是在很多场合它也具有一些较难克服的缺点:代码明文,较难加密。 由于#1,python脚本很难应用于收费工具领域。那么如果我想对一个Python工具的使用加以限制,有没有什么方法可以实现呢?本文提供一种简易的License授权机制实现思路,它主要包括如下几部分内容:如何生成一个加密的License文件。 如何做License内容核验。…

发表回复

您的电子邮箱地址不会被公开。

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