So the alert gives undefined values for the width and height. I think the w and h values of the image from the img.onload calculation is not being passed to the values to return, or it may be returning w and h before the onload calculates them:
function getMeta(url){ var w; var h; var img=new Image; img.src=url; img.onload=function(){w=this.width; h=this.height;}; return {w:w,h:h} } // "http://snook.ca/files/mootools_83_snookca.png" //1024x678 // "http://shijitht.files.wordpress.com/2010/08/github.png" //128x128 var end = getMeta("http://shijitht.files.wordpress.com/2010/08/github.png"); var w = end.w; var h = end.h; alert(w+'width'+h+'height');
How can I have the alert show the correct width and height?
http://jsfiddle.net/YtqXk/
src = uploadedImage; console. log(image. naturalWidth,image. naturalHeight);
function getMeta(url) { $("<img/>",{ load: function() { alert( this.width +" "+ this.height ); }, src: url }); }
function getMeta(url) { var img = new Image(); img.onload = function() { alert( this.width +" "+ this.height ); }; img.src = url; }
function getMeta(url){ const img = new Image(); img.addEventListener("load", function() { alert( this.naturalWidth +' '+ this.naturalHeight ); }); img.src = url; }
Use like: getMeta( "http://example.com/img.jpg" );
https://developer.mozilla.org/en/docs/Web/API/HTMLImageElement
Just pass a callback as argument like this:
function getMeta(url, callback) { const img = new Image(); img.src = url; img.onload = function() { callback(this.width, this.height); } } getMeta( "http://snook.ca/files/mootools_83_snookca.png", (width, height) => { alert(width + 'px ' + height + 'px') } );
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With