如何在加载jQuery之前获取图像大小?

时间:2011-12-02 23:56:52

标签: jquery image

我使用jQuery + AJAX上传图片,然后生成html来显示它。成功上传图像后,AJAX获取图像文件名。我想在实际加载之前获得图像的尺寸比。否则,如果我加载图片并使用.width().height(),则会返回0,因为加载图片需要一些时间。

jQuery中有任何函数,如PHP的getimagesize(filename)吗?

*编辑*

抱歉这个混乱!我希望js中的函数不在PHP中,函数就像PHP的getimagesize(filename)

*再次修改*

我在这里发布简化代码:

var html = '<img id="photo' +  id + '" src="' + filename + '" />';
$('#photos li:last').html(html);
var e = $('#photo' + id);
(e.width() / e.height() > 1.6) ? e.attr('width', 160): e.attr('height', 100);

此处的问题是.width().height()如果使用clientWidthclientHeight,则均为0.,它们是undefined

3 个答案:

答案 0 :(得分:5)

var e = $('#photo' + id);
e.load(function() {
   (e.width() / e.height()) > 1.6 ? e.attr('width', 160): e.attr('height', 100);
});

答案 1 :(得分:2)

在询问此问题之前,您是否检查过PHP手册?在PHP中有一个功能正是如此,您可以使用您猜到的确切名称:

http://php.net/manual/en/function.getimagesize.php

答案 2 :(得分:1)

为什么不从php文件传递json对象我假设您正在上传图像? 如状态(上传,错误等),x(宽度),y(高度)等

然后你可以在ajax回调中使用它。