How do I get natural dimensions of an image using javascript or jquery?

前端 未结 3 1191
感情败类
感情败类 2020-12-10 10:42

I have this code so far:

var img = document.getElementById(\'draggable\');
var width = img.clientWidth;
var height = img.clientHeight;

How

相关标签:
3条回答
  • 2020-12-10 11:09

    You can use the following function I made.

    Function

    function getImageDimentions(imageNode) {
      var source = imageNode.src;
      var imgClone = document.createElement("img");
      imgClone.src = source;
      return {width: imgClone.width, height: imgClone.height}
    }
    

    html:

    <img id="myimage" src="foo.png">
    

    use it like this

    var image = document.getElementById("myimage"); // get the image element
    var dimentions = getImageDimentions(image); // get the dimentions
    alert("width: " + dimentions.width + ", height: " + dimentions.height); // give the user a visible alert of the dimentions
    
    0 讨论(0)
  • 2020-12-10 11:13

    You could use naturalWidth and naturalHeight, these properties contain the actual, non-modified width and height of the image, but you have to wait until the image has loaded to get them

    var img = document.getElementById('draggable');
    
    img.onload = function() {
        var width  = img.naturalWidth;
        var height = img.naturalHeight;
    }
    

    This is only supported from IE9 and up, if you have to support older browser you could create a new image, set it's source to the same image, and if you don't modify the size of the image, it will return the images natural size, as that would be the default when no other size is given

    var img     = document.getElementById('draggable'),
        new_img = new Image();
    
    new_img.onload = function() {
        var width  = this.width,
            heigth = this.height;
    }
    
    new_img.src = img.src;
    

    FIDDLE

    0 讨论(0)
  • 2020-12-10 11:16

    There are img.naturalHeight and img.naturalWidth which give you the width and height of the image itself, and not the DOM element.

    0 讨论(0)
提交回复
热议问题