首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js根据url获取图片高和宽

在JavaScript中,可以通过创建一个Image对象并监听其load事件来获取图片的宽度和高度。以下是一个示例代码:

代码语言:txt
复制
function getImageSize(url) {
  return new Promise((resolve, reject) => {
    const img = new Image();
    img.onload = () => {
      resolve({ width: img.width, height: img.height });
    };
    img.onerror = (error) => {
      reject(error);
    };
    img.src = url;
  });
}

// 使用示例
getImageSize('https://example.com/image.jpg')
  .then(size => {
    console.log('图片宽度:', size.width);
    console.log('图片高度:', size.height);
  })
  .catch(error => {
    console.error('获取图片尺寸失败:', error);
  });

基础概念

  • Image对象:HTML5中的Image对象用于在网页上显示图像。
  • Promise:用于处理异步操作,确保在图片加载完成后获取尺寸。

优势

  1. 非阻塞:通过异步加载图片,不会阻塞主线程。
  2. 准确性:直接从浏览器渲染引擎获取实际的图片尺寸。
  3. 灵活性:适用于各种图片格式和来源。

类型

  • 同步获取:直接在图片加载完成后立即获取尺寸。
  • 异步获取:使用Promise或其他异步机制处理图片加载完成后的操作。

应用场景

  • 预加载图片:在页面加载前预先获取图片尺寸,优化布局。
  • 动态调整容器大小:根据图片实际尺寸动态调整显示容器的大小。
  • 图片懒加载:在图片进入视口前获取尺寸,优化加载性能。

可能遇到的问题及解决方法

  1. 跨域问题:如果图片来自不同的域,可能会遇到跨域限制。解决方法是在服务器端设置CORS(跨域资源共享)头。
  2. 跨域问题:如果图片来自不同的域,可能会遇到跨域限制。解决方法是在服务器端设置CORS(跨域资源共享)头。
  3. 图片加载失败:如果图片URL无效或网络问题导致加载失败,可以通过onerror事件处理错误。
  4. 图片加载失败:如果图片URL无效或网络问题导致加载失败,可以通过onerror事件处理错误。
  5. 性能问题:频繁获取大量图片尺寸可能导致性能问题。可以通过批量处理或缓存结果来优化。

通过上述方法,可以有效且可靠地获取图片的宽度和高度,适用于多种前端开发场景。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JS获取图片原始宽高

最近在给博客的相册模块做优化,需要知道图片的原始大小,我以前的做法是把图片的真实宽高分别放在data-width和data-height中,效果是达到了,但是总觉得扩展性很低,当不知道图片的大小时,还要一张一张图片的去查看图片信息手动输入图片大小...,很繁琐 获取图片大小: 1.使用innerWidth,innerHeight 使用HTMLImageElement.innerWidth 是可以拿到图片的宽度 但是需要注意的是这里拿到的宽度是图像在CSS...像素中渲染的宽度 也就是说如果图片原始大小1200,使用css或者width属性设置为600,那么这里拿到的宽度为600,显然用innerWidth获取图片原始尺寸是不靠谱的 2.使用document.createElement...document.createElement("img") img.src = "1.jpg" var width = img.width 动态创建一个imgElement,通过给src赋值,最终来获取...img的宽和高 需要注意的是在给img的src赋值时,这是一个异步过程,会存在获取img的宽度时值为0(图片还未加载完成),可以在给img赋值之前加上onload事件 var img = document.createElement

6.4K20
  • js获取各种距离和宽高

    window.screen.height 返回屏幕的高度 window.screen.width 返回屏幕的宽度 window.innerHeight/window.innerwidth 返回窗口内部的高度/宽度(不包含工具栏和滚动条...以整个页面的左上角为原点, 距离页面左侧的距离, 随页面滚动而改变 screenX 以计算机显示屏屏幕左上角为原点, 距离屏幕顶部的距离 screenY 以计算机显示屏屏幕左上角为原点, 距离屏幕左侧的距离 元素的宽高及各种距离...宽高 属性 说明 clientHeight/clientWidth 包括元素的可视部分的高度/宽度包括width/height和padding不包括border和滚动条如果是content-box,则为...为字符串类型) 距离 属性 说明 offsetTop/Left 元素距离最近的带有定位(fixed/relative/absolute)的父元素的顶部/左侧的距离 scrollTop/Left 此属性可以获取或者设置对象的最顶部到对象在当前窗口显示的范围内的顶边

    23710

    js图片监听onload事件,依然有获取不到宽高的场景

    背景 在实际开发中,移动端页面遇到的,采用正常写法,图片 src赋值写在 onload 事件监听 后面,依然会有拿不到 图片真实宽高的场景,获得的图片宽高都为0,真的是好坑啊。...(img.width,img.height) } // 改变图片的src img.src = img_url 解决 参考了该文章 关键时刻,还是得靠定时器轮询啊!!!...// 记录当前时间戳 var start_time = new Date().getTime() // 图片地址 后面加时间戳是为了避免缓存 var img_url = "xxx.jpg" // 创建对象...var img = new Image() // 改变图片的src img.src = img_url // 定时执行获取宽高 var check = function(){ // 只要任何一方大于...0 // 表示已经服务器已经返回宽高 if (img.width>0 || img.height>0) { clearInterval(set); } } var

    4K20

    javascript 快速获取图片实际大小的宽高

    javascript 快速获取图片实际大小的宽高 简陋的获取图片实际宽高的方式 // 图片地址 var img_url = '13643608813441.jpg' // 创建对象 var img =...宽高都是0的这个结果很正常,因为图片的相关数据都没有被加载前它的宽高默认就是0,我们需要它加载完所有的相关数据再获取宽和高。...从缓存里读取图片的宽高不用说,非常方便快捷,今天我们要解决的是没有缓存而又快速的相比onload更快的方式去获取图片的宽高。...+start_time // 创建对象 var img = new Image() // 改变图片的src img.src = img_url // 定时执行获取宽高 var check = function...这是一张2560 * 1600大小的图片,各浏览器执行结果都能看到通过快速获取图片大小的方法几乎都在200毫秒以内,而onload至少五秒以上,这差别之大说明快速获取图片宽高非常实用。

    5.6K10

    js获取屏幕以及元素宽高的方法

    一.window相关 网页正文部分上:window.screenTop 网页正文部分左:window.screenLeft 屏幕分辨率的高:window.screen.height 屏幕分辨率的宽:...document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWidth (包括边线的宽...) 网页可见区域高:document.body.offsetHeight (包括边线的宽) 网页正文全文宽:document.body.scrollWidth 网页正文全文高:document.body.scrollHeight...scrollWidth: 获取对象的滚动宽度 document.documentElement.scrollTop 垂直方向滚动的值 四.位置精确定位 scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离...scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置 offsetTop

    6.9K20

    JS获取图片URL并截取文件名和后缀

    现在要解决问题,需要获取图片的链接,并把链接中的(图片)文件名提取出来。...下面开始: 比如,图片的 URL 地址是:https://www.w3h5.com/zb_users/upload/2019/04/201904031554286068121005.png?...把 URL 和参数分离: let url = "https://www.w3h5.com/zb_users/upload/2019/04/201904031554286068121005.png", http...201904031554286068121005.png"] 数组的最后一个就是文件名: console.log(file[file.length - 1]); 打印结果: 201904031554286068121005.png 这样就把图片的名称和后缀获取到了...声明:本文由w3h5原创,转载请注明出处:《JS获取图片URL并截取文件名和后缀》 https://www.w3h5.com/post/543.html 本文已加入 腾讯云自媒体分享计划 (点击加入)

    11.4K21

    JavaScript与jQuery获取元素的宽、高和位置

    今天汇总整理了 JavaScript 和 jQuery 获取元素宽高和位置的方法,比较全面,方便自己和需要并搜到此文章的朋友们查看。...可视宽高 clientHeight :元素的可视高度(包括内边距,不包括边框、外边距或滚动条) clientWidth :元素的可视宽度(包括内边距,不包括边框、外边距或滚动条) 自身宽高 offsetHeight...) offsetParent :元素的偏移容器(父元素) offsetTop :元素的相对垂直偏移位置(上边界距离可视区域最上边的距离) 事迹宽高 scrollHeight :整个元素的高度(包括带滚动条的隐蔽的地方...元素的宽高 width() :获得或设置元素【内容】的宽;若元素的display:none,其值为0 height() :获得或设置元素【内容】的高;若元素的display:none,其值为0 innerWidth...浏览器相关宽高 $(window).height() :获取浏览器可视窗口的高度; $(document).height() :获取整个网页文档的高度;当网页高度不足浏览器窗口时,返回的是 $(window

    3.1K00

    js 获取屏幕各种宽高的方法(浏览器兼容)

    屏幕的有效宽高: window.screen.availHeight window.screen.availWidth 网页可见区域宽:document.body.clientWidth  网页可见区域高...:document.body.clientHeight  网页可见区域宽:document.body.offsetWidth (包括边线的宽)  网页可见区域高:document.body.offsetHeight...(包括边线的宽)  网页正文全文宽:document.body.scrollWidth  网页正文全文高:document.body.scrollHeight  网页被卷去的高:document.body.scrollTop...scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离  scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离  scrollWidth:获取对象的滚动宽度...  offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度  offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置

    3.6K100

    python获取图片并储存图片_python用户输入矩形的长和宽

    /images/000011.jpg”# 使用pillow读取图片,获取图片的宽和高img_pillow = Image.open(image_path)img_width = img_pillow.width...# 图片宽度img_height = img_pillow.height # 图片高度print(“width -> {}, height -> {}”.format(img_width, img_height...1333, 2000, 3)(1333, 2000, 3) 注意事项:读取出的图像矩阵的shape是按 高度、宽度、通道数 这个顺序,图像宽度是第一个维度 总结 以上所述是小编给大家介绍的python读取图片的几种方式及图像宽和高的存储顺序...以上就上有关python读取图片的几种方式及图像宽和高的存储顺序的全部内容,学步园全面介绍编程技术、操作系统、数据库、web前端技术等内容。

    84020

    Android笔记:根据图片url获取bitmap或者drawable,然后再进行压缩处理

    在做微信分享大图的时候遇到了这个问题,需要通过图片url生成Bitmap,而大家也经常会遇到下面几种情况: 1.通过图片url生成Bitmap对象和Drawable对象。...int w = newOpts.outWidth; int h = newOpts.outHeight; //现在主流手机比较多是800*480分辨率,所以高和宽我们设置为...由于是固定比例缩放,只用高或者宽其中一个数据进行计算即可 int be = 1;//be=1表示不缩放 if (w > h && w > ww) {//如果宽度大的话根据宽度固定大小缩放...int w = newOpts.outWidth; int h = newOpts.outHeight; //现在主流手机比较多是800*480分辨率,所以高和宽我们设置为...url生成Bitmap对象 * @param urlpath * @return Bitmap * 根据图片url获取图片对象 */ public static

    88030
    领券