Skip to content Skip to sidebar Skip to footer

Get Image Width Height Javascript

Well, I have this code: http://jsfiddle.net/hv9gB/3/ (function() { var img = document.getElementById('my_image'); // Original var width, height; // Display

Solution 1:

Put your code in

window.onload = function() {
 //insert code here
}

Your js file is executed before the engine reach the picture..You're getting the following console error:

UncaughtTypeError: Cannot read property 'width'ofnull

It's also a good practice to put all scripts files in the end of the page and all css files in the begin. It will increase the loading time of your page, because if JS files are in the begin, your browser won't start to render until these files are downloaded.

your code should look like:

window.onload = function() {

var img = document.getElementById('my_image');

// Originalvar width, height;

// Displayvar d_width = img.width;
var d_height = img.height;

var updateDetail = function() {
    document
        .getElementById('display_size')
        .innerHTML = 'Display Size: ' + d_width + ' x ' + d_height;

    document
        .getElementById('native_size')
        .innerHTML = 'Original Size: ' + width + ' x ' + height;
};

// Using naturalWidth/Heightif (img.naturalWidth) {
    width = img.naturalWidth;
    height = img.naturalHeight;

    updateDetail();
} else {
    // Using an Image Object
    img = newImage();
    img.onload = function() {
        width = this.width;
        height = this.height;

        updateDetail();
    };
    img.src = 'http://lorempixel.com/output/nature-q-c-640-480-3.jpg';
}

}

Solution 2:

Move the script tag after the image in HTML. Script gets executed before the image goes into page.

Solution 3:

Put the code at the bottom of your <body> in a <script type='text/javascript'> or use window.onload. If you have other things loading onload the first option is your best choice, otherwise use this code:

<scripttype='text/javascript'>
  (function(){
    var pre = window.onload;
    onload = function(){
      if(pre)pre();
      //other code here
    }
  })();
</script>

This example can be used in your <head>.

Solution 4:

<!DOCTYPE html><html><head><scriptsrc="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script><script>functionreadImage(file) {

    var reader = newFileReader();
    var image  = newImage();

    reader.readAsDataURL(file);  
    reader.onload = function(_file) {
        image.src    = _file.target.result;              // url.createObjectURL(file);
        image.onload = function() {
            var w = this.width,
                h = this.height,
                t = file.type,                           // ext only: // file.type.split('/')[1],
                n = file.name,
                s = ~~(file.size/1024) +'KB';
            $('#uploadPreview').append('<img src="'+ this.src +'"> '+w+'x'+h+' '+s+' '+t+' '+n+'<br>');
        };
        image.onerror= function() {
            alert('Invalid file type: '+ file.type);
        };      
    };

}
$("#choose").change(function (e) {
    if(this.disabled) returnalert('File upload not supported!');
    var F = this.files;
    if(F && F[0]) for(var i=0; i<F.length; i++) readImage( F[i] );
});
</script><metacharset=utf-8 /><title>Multiple image upload with preview by Roko C.B.</title></head><body><inputtype="file"id="choose"multiple="multiple" /><br><divid="uploadPreview"></div></body></html>

Post a Comment for "Get Image Width Height Javascript"