JavaScript中如何获取图片的原始尺寸

页面里的img元素,想要获取它的原始尺寸,以宽度为例可能首先想到的就是width,如下

<img src="jpg/rBEhVlNhh8wIAAAAAADmFBLo1twAAM26gOmCgYAAOYs716.jpg">
<script>
    var img = document.getElementsByTagName('img')[0]
    var width = getWH(img, 'width') // 690
</script>

这里使用的getWH方法是之前文章里提到的。这时候获取的宽度和图片的原始尺寸是一样的。

如果给img加上了width属性,这种方式就不行了,比如图片实际宽度是690,设置了width为400,这时按上面的方式获取则返回400

<img width="400" src="jpg/rBEhVlNhh8wIAAAAAADmFBLo1twAAM26gOmCgYAAOYs716.jpg">
<script>
    var img = document.getElementsByTagName('img')[0]
    var width = getWH(img, 'width') // 400
</script>

很明显,400不是图片的原始宽度。

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/webkf/script/

有一种方式可以获取到,直接创建一个新img对象,然后把旧img的src赋值给新的,这时候获取新img的宽度即可

<img width="400" src="jpg/rBEhVlNhh8wIAAAAAADmFBLo1twAAM26gOmCgYAAOYs716.jpg">
<script>
function getNaturalWidth(img) {
    var image = new Image()
    image.src = img.src
    var naturalWidth = image.width
    return naturalWidth
}
var img = document.getElementsByTagName('img')[0]
getNaturalWidth(img) // 690
</script>

需要注意的是,这里新创建的image是不需要添加的DOM文档里的。

HTML5提供了一个新属性naturalWidth/naturalHeight可以直接获取图片的原始宽高。这两个属性在Firefox/Chrome/Safari/Opera及IE9里已经实现。改造下获取图片尺寸的方法。

function getImgNaturalDimensions(img, callback) {
    var nWidth, nHeight
    if (img.naturalWidth) { // 现代浏览器
        nWidth = img.naturalWidth
        nHeight = img.naturalHeight
    } else { // IE6/7/8
        var imgae = new Image()
        image.src = img.src
        image.onload = function() {
            callback(image.width, image.height)
        }
    }
    return [nWidth, nHeight]
}

注意IE6/7/8的处理,创建了一个新的img,仅设置其src,这时需要让图片完全载入后才可以获取其宽高。因此这里是异步的,可以传一个回调,回调里把原始的宽高作为参数传入。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索图片
, img
, width
, image
, 宽度
, 原始
, 原始尺寸
, 获取图片尺寸
, 图片原始尺寸
, 获取图片宽高
获取img的src
js获取图片原始尺寸、js获取图片的原始尺寸、获取图片原始尺寸、获取图片的原始尺寸、jq获取图片原始尺寸,以便于您获取更多的相关知识。

时间: 2024-11-03 05:22:47

JavaScript中如何获取图片的原始尺寸的相关文章

JavaScript获取图片的原始尺寸以宽度为例

  这篇文章主要介绍了JavaScript如何获取图片的原始尺寸以宽度为例,需要的朋友可以参考下 页面里的img元素,想要获取它的原始尺寸,以宽度为例可能首先想到的就是width,如下 代码如下:<img src="http://img11.360buyimg.com/da/g14/M07/01/0E/rBEhVlNhh8wIAAAAAADmFBL o1twAAM26gOmCgYAAOYs716.jpg">  <script> var img = documen

JavaScript获取图片的原始尺寸

页面里的img元素,想要获取它的原始尺寸,以宽度为例可能首先想到的就是width,如下 <img src=http://www.update8.com/Web/Javascript/"http://img11.360buyimg.com/da/g14/M07/01/0E/rBEhVlNhh8wIAAAAAADmFBLo1twAAM26gOmCgYAAOYs716.jpg"> <script>     var img = document.getElementsB

JavaScript获取图片的原始尺寸以宽度为例_javascript技巧

页面里的img元素,想要获取它的原始尺寸,以宽度为例可能首先想到的就是width,如下 复制代码 代码如下: <img src=https://yunqi-tech.oss-cn-hangzhou.aliyuncs.com/rBEhVlNhh8wIAAAAAADmFBLo1twAAM26gOmCgYAAOYs716.jpg> <script> var img = document.getElementsByTagName('img')[0] var width = getWH(im

iOS 获取图片的原始格式

原文链接 : iOS 获取图片的原始格式更多 精彩文章请访问:锐意翱翔 今天测试给过来一张图片(后缀是.png)说无法在 APP 的 WebView 里面无法显示,而且在 Safari 里也是无法打开的,但在谷歌浏览器上是可以正常显示.起初是知道 WebP 格式的图片苹果是不支持显示的,但这个图片的后缀是.png 的,难道还有 png 的图片是苹果不支持的么? 根据个人经验,是没有听说苹果不支持 png 格式的图片的,这时想到以前自己更改 JPG 图片后缀的事情,是不是这张图片也是经过别人手动改

javascript中怎么获取农历程序代码

  获取农历 农历月的天数是一个变数,有时是 29 天,有时是 30 天. 农历每月的第一天是月亮全黑的日子. 农历年由 24 个节气来确定,节气则由太阳的角度来确定.农历的第一个节气叫 雨水,定在太阳的角度为 330 度的日子.其余的 23 个节气分别定在太阳的角度 每变化 15 度的日子.下面的表格列出了 24 个节气的名称和定义: 命称    角度    公历日期      周期 立春     315     2月 4日 雨水     330     2月19日    29.8天 惊蛰  

JAVA获取图片大小和尺寸

import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import javax.imageio.ImageIO; public class CalPit {  public static void main(String[] args) th

JavaScript中常见获取元素的方法汇总_javascript技巧

常见的获取元素的方法有3种,分别是通过元素ID.通过标签名字和通过类名字来获取. getElementById DOM提供了一个名为getElementById的方法,这个方法将返回一个与之对应id属性的节点对象.使用的时候请注意区分大小写. 它是document对象特有的函数,只能通过其来调用该方法.其使用的方法如下: 复制代码 代码如下: document.getElementById('demo') //demo是元素对应的ID 该方法兼容主流浏览器,甚至包括IE6+,可以大胆使用. ge

Javascript获取图片原始宽度和高度的方法详解_javascript技巧

前言 网上关于利用Javascript获取图片原始宽度和高度的方法有很多,本文将再次给大家谈谈这个问题,或许会对一些人能有所帮助. 方法详解 页面中的img元素,想要获取它的原始尺寸,以宽度为例,可能首先想到的是元素的innerWidth属性,或者jQuery中的width()方法. 如下: <img id="img" src="1.jpg"> <script type="text/javascript"> var img

Js获取图片原始宽高的实现代码_javascript技巧

如果我们页面看到的图片都是缩略图,那就需要做个图片点击放大效果,那么怎样获取图片的原始宽高呢?方法如下: //获取图片原始宽度 function getNaturalWidthAndHeight(img) { var image = new Image(); image.src = img.src; return [image.width,image.height]; } //点击缩略图弹出层,显示原始图片. //获取class为tz_main_box下的所有p标签下的图片img $(".tz_