获取url jquery指定的图像的宽度

时间:2011-12-26 15:02:29

标签: jquery

我想读出for循环中url指定的图像的宽度(orgWidth),计算高度为480px的新宽度(calcWidth)。

for (var i=1; i <= item.length; i++) {

    url = document.images[i].rsc;
    orgWidth = some-fancy-thing-that-reads-the-width;
    orgHeight = some-fancy-thing-that-reads-the-height;

    factor = orgHeight / 480        // 1400 / 480 = 2.916
    calcWidth = orgWidth / factor       // 1000 / 2.916 = 342.935

    document.images[i].width = calcWidth;

}

Page我需要它: http://foto.hendrik-schicke.de/index.php/people

3 个答案:

答案 0 :(得分:8)

var tmpImg = new Image();
tmpImg.src="https://www.google.com/intl/en_com/images/srpr/logo3w.png"; //or  document.images[i].src;
$(tmpImg).on('load',function(){
  var orgWidth = tmpImg.width;
  var orgHeight = tmpImg.height;
  alert(orgWidth+"x"+orgHeight);
});

演示:http://jsfiddle.net/eWzWg/3/

答案 1 :(得分:4)

我们可以检查图像是否已经加载到浏览器的缓存中。只有加载了图像,我们才会将onload处理程序绑定到它。这是纯粹的javascript示例。

var image;
function onload () {
    console.log(image.height, image.width);
}

image= new Image();
image.src="https://www.google.com/intl/en_com/images/srpr/logo3w.png";
// check if image is already loaded to cache
if (image.complete) {
    console.log('image already loaded to browser');
    onload();
} else {
    // or bind onload handler for image
    image.onload = onload;
}

jsFiddle

播放该示例

答案 2 :(得分:3)

这是不可能的使用javascript,肯定不可能通过'not-preloading',因为你需要'拥有'文件才能用它做任何事情。

您最好的方法是将图像的URL移交给服务器端脚本(PHP?),它将获取图像尺寸并将数据传回给您或将其存储在数据库中(这里的可能性是无穷无尽的)

但是要回答你的问题,使用纯JavaScript无法加载图片是不可能的。