`

JavaScript获取图片的原始尺寸

 
阅读更多
http://my.oschina.net/u/200350/blog/494144

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

这里使用的getWH方法是之前文章 http://www.cnblogs.com/snandy/archive/2011/09/06/2167440.html里提到的。这时候获取的宽度和图片的原始尺寸是一样的。



如果给img加上了width属性,这种方式就不行了,比如图片实际宽度是690,设置了width为400,这时按上面的方式获取则返回400
<img width="400" src=" http://img11.360buyimg.com/da/g14/M07/01/0E/rBEhVlNhh8wIAAAAAADmFBLo1twAAM26gOmCgYAAOYs716.jpg">
<script>
    var img = document.getElementsByTagName('img')[0]
    var width = getWH(img, 'width') // 400
</script>

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



有一种方式可以获取到,直接创建一个新img对象,然后把旧img的src赋值给新的,这时候获取新img的宽度即可
<img width="400" src=" http://img11.360buyimg.com/da/g14/M07/01/0E/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,这时需要让图片完全载入后才可以获取其宽高。因此这里是异步的,可以传一个回调,回调里把原始的宽高作为参数传入。
分享到:
评论

相关推荐

    JavaScript 在图片上单击获取图片原始大小.rar

    &lt;title&gt;JavaScript获取图片原始大小 img { max-width: 100%; height: auto; } 你的图片路径.jpg" onclick="displayOriginalSize(event)"&gt; &lt;p id="sizeInfo"&gt;&lt;/p&gt; function displayOriginalSize...

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

    在JavaScript中,获取图片的原始尺寸,特别是宽度,是一个常见的需求。这主要涉及到网页中`&lt;img&gt;`元素的尺寸属性和HTML5中的新特性。原始尺寸指的是图片在未经任何CSS或JavaScript修改时的自然大小。以下是一些关于...

    javascript获取图片的md5

    标题"javascript获取图片的md5"指的是利用JavaScript语言在浏览器环境中计算图片的MD5值。JavaScript作为一种客户端脚本语言,允许在用户浏览器上运行,因此可以在不将图片数据发送到服务器的情况下完成这个过程,...

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

    传统的img标签获取到的宽高往往是被CSS样式修改过的,而非图片的原始尺寸。...总结来说,通过JavaScript获取图片原始尺寸并结合jQuery和Layer插件,可以有效地在网页上实现图片点击放大功能,提高用户体验。

    js按比例缩放图片且垂直居中显示图片

    - **JavaScript方式**:如果需要动态计算图片的缩放比例,可以使用JavaScript获取图片原始尺寸和容器尺寸,然后通过计算得出缩放后的尺寸。例如: ```javascript var img = document.getElementById('yourImage')...

    JavaScript简单获取页面图片原始尺寸的方法

    总的来说,JavaScript通过`Image`对象获取图片原始尺寸是一种实用的技巧,它可以帮助开发者更好地控制页面布局,特别是在处理动态加载或响应式设计时。理解并掌握这种技术,能提升网页开发的效率和用户体验。

    javascript 获取图片尺寸及放大图片

    本文将详细介绍如何在不设置图片宽高的情况下获取图片尺寸,并探讨一种利用IE私有属性防止图片放大失真的方法,以及Firefox和Chrome浏览器中可用的`naturalWidth`和`naturalHeight`属性来获取图片原始尺寸。...

    使用js获取图片原始尺寸

    获取图片原始尺寸对开发者来说是一个常见需求,尤其是在需要根据图片的实际尺寸来布局页面或者进行一些交互设计时。 在给出的文件内容中,有一个使用JavaScript代码片段来获取图片原始尺寸的示例。我们可以通过分析...

    在图片上单击获取图片原始大小.rar

    在图片上单击获取图片原始大小.rar在图片上单击获取图片原始大小.rar在图片上单击获取图片原始大小.rar在图片上单击获取图片原始大小.rar在图片上单击获取图片原始大小.rar在图片上单击获取图片原始大小.rar

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

    在JavaScript中,获取图片的原始尺寸是一个常见的需求,特别是在动态调整图片大小或处理图像显示时。本文将深入探讨如何有效地获取图片的原始宽度和高度,同时提供兼容不同浏览器的解决方案。 首先,我们通常会尝试...

    JavaScript实现加载不同尺寸图片自适应统一尺寸容器,且图片不变形

    获取图片的原始宽高比例,然后根据这个比例调整图片的宽度或高度,使其充满容器,而另一维度保持自动。 ```javascript function adjustImageFitContainer(imgElement, containerWidth, containerHeight) { const ...

    js判断图片加载完成后获取图片实际宽高的方法

    在Web开发过程中,获取...以上就是使用JavaScript获取图片实际尺寸的基本方法和注意事项。通过理解这些知识点,我们可以在Web开发中更加灵活和准确地处理图片尺寸相关的问题,从而改善用户的视觉体验和页面的适应性。

    JavaScript_获取图像的尺寸.zip

    总之,JavaScript提供了多种方法来获取图像的尺寸,无论是在图片加载前后,或者处理单个或多个图片。理解这些方法对于优化页面性能,尤其是涉及图像处理的场景,至关重要。通过合理利用`Image`对象和事件处理,我们...

    javascript实现图片缩放

    1. 获取图片元素:在JavaScript中,可以使用`document.getElementById()`或`document.querySelector()`方法获取到`&lt;img&gt;`元素。例如,如果图片元素的ID为"myImg",则可以这样获取: ```javascript var imgElement =...

    javascript实现图片上传

    然后创建一个新的`Image`对象并赋值为当前图片的源,以便获取图片的实际尺寸。如果图片的宽高比大于或等于预设比例,它会根据宽度进行调整;否则,根据高度进行调整。调整后,设置`alt`属性为图片的新尺寸。 3. **...

    javascript 图片自动缩放

    图片自动缩放的核心思路通常是根据图片原始尺寸和容器尺寸来计算合适的缩放比例。下面是一个简单的JavaScript实现示例: ```javascript // 获取图片元素 var imgElement = document.getElementById('myImage'); //...

    javascript实现加载各种尺寸图片自适应同一尺寸容器,切不变形

    接下来,我们需要计算出保持图片原始比例的新尺寸。这可以通过计算图片宽高比(aspect ratio)来实现。宽高比是图片宽度除以高度,即`width / height`。为了保持比例,我们可以根据容器的宽度或高度(取决于哪个更小...

    JavaScript获取图片真实大小代码实例

    以下是一个使用JavaScript获取图片真实大小的代码实例: ```javascript // 获取页面中特定ID的图片元素 var img = $("#img_id"); // 创建一个内存中的图片副本,避免CSS影响尺寸计算 var imgClone = $("&lt;img/&gt;")....

    在图片上单击获取图片原始大小

    2. 获取图片原始大小:在JavaScript中,可以通过创建一个Image对象并设置其`src`属性为图片URL,然后监听`load`事件来获取图片的原始尺寸。一旦图片加载完成,`naturalWidth` 和 `naturalHeight` 属性将分别返回图片...

Global site tag (gtag.js) - Google Analytics