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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 高并发下线程安全的单例模式(最全最经典)

    高并发下线程安全的单例模式(最全最经典)在所有的设计模式中,单例模式是我们在项目开发中最为常见的设计模式之一,而单例模式有很多种实现方式,你是否都了解呢?高并发下如何保证单例模式的线程安全性呢?如何保证序列化后的单例对象在反序列化后任然是单例的呢?这些问题在看了本文之后都会一一的告诉你答案,赶快来阅读吧!

    2022年5月16日
    38
  • 在线客服系统源码 自适应手机移动端 支持多商家 带搭建教程

    在线客服系统源码 自适应手机移动端 支持多商家 带搭建教程下载链接:在线客服系统源码自适应手机移动端支持多商家支持微信公众号/微信小程序带搭建教程-PHP文档类资源-CSDN下载PHP轻量级人工在线客服系统源码自适应手机移动端支持多商家带搭建教程支持多商家支持多商家,每个注册用户为一个商家,每个商家可以添加多个客服。不限坐席每个商家可以无限添加坐席,不限制坐席数支持H5移动端系统自动适配移动端,也可以接入app(h5方式)支持微信公众号/微信小程序客服可以与微信公众号/小程序里的访客实时沟通常见问题自动回复…

    2022年7月19日
    19
  • Node.js实战:Express实现简单后台登录系统

    Node.js实战:Express实现简单后台登录系统1.建立Express项目在进行以下操作之前,请确保你的电脑已经装好Node.js和Express框架。首先打开命令行提示符,输入express–view=ejs-ewww其中–view=ejs表示使用ejs模版引擎,-e指定项目名称,此处设为www。回车之后,当前文件夹下会多出一个名为www的文件夹,这个就是我们项目所在的地方。此时,www文件夹中默认已经有了基本的文件,但是相关

    2022年5月29日
    48
  • docker镜像源_云原生技术

    docker镜像源_云原生技术Docker镜像的详细讲解,如何安装Docker、配置Docker镜像加速以及操作Docker镜像。

    2022年9月22日
    2
  • opencv角点检测学习总结[通俗易懂]

    opencv角点检测学习总结[通俗易懂]学习opencv角点检测如果一个点在两个正交方向上都有明显的导数,则我们认为此点更倾向于是独一无二的,所以许多可跟踪的特征点都是角点。一下为角点检测中用到的一些函数cvGoodFeaturesToTrack采用Shi和Tomasi提出的方法,先计算二阶导数,再计算特征值,它返回满足易于跟踪的定义的一系列点。voidcvGoodFeaturesToTrack(

    2022年8月30日
    6
  • 检测死链的工具[通俗易懂]

    检测死链的工具[通俗易懂]
    XenuLinkSleuth:一种很小很强大的检查网站死链接的工具
    在测试网站的过程中,常常需要检查网站里的所有链接是否正常,如果一个个去点击各个页面来测试,不仅让测试人员感到非常枯燥,也浪费时间。举例来说,如果一个门户网站,首页有100个链接,每个二级页面又有50个链接,那么这样简单一算就是5000次点击,一个测试人员每2秒检查一个页面,要花10000秒,约2.8个小时,还不能100%保证所有的页面都check到位,多少会有点担心:是不是有漏掉的。
    这里借用xenul

    2022年7月23日
    8

发表回复

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

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