2013-04-10 57 views
0

我在gtmetrix.com上打分了我的网站。将图片尺寸自动增加到<img>

它建议在我的所有图像中添加图像尺寸。事情是,我需要一些自动添加这些的方法,所以如果图像改变,尺寸会被更新。

我有什么

<img src="bla.png"> 

我想吃点什么

<img src="bla.png" width="{width of image}" height="{height of img}"> 

有一个PHP的方式或jQuery的方式做到这一点? 对于WordPress的网站。

+1

使用jQuery来计算加载时的图像尺寸可能实际上会减慢您的网站,而不是那里的尺寸。我的网站计算上传图片的尺寸并将它们存储到PHP在负载中检索它们的数据库中,但我的网站不是WP网站。事实上,任何有关负载的事情都可能会对页面加载速度造成不利影响。数据库方法 – 2013-04-10 11:59:33

+0

伟大的国际海事组织。 – Ejaz 2013-04-10 12:00:20

回答

0

您可以使用image onload事件来计算图像的尺寸。纯JavaScript方法,类似;

var image = new Image(); 

image.onload = function() 
{ 
    //after load complete you will get the image dimensions here from 
    //image.width and image.height 
} 

image.src = 'image url'; 
+1

IMO它无视标记中指定图像尺寸的全部要点 – Ejaz 2013-04-10 12:01:37

+0

@Ejay OP可以在image.onload事件 – gaurav 2013-04-10 12:04:01

+0

上标记标记,但是它仍然会等待图像完全加载,因此页面反正会渲染。 – Ejaz 2013-04-10 12:06:26

0

如果您要动态输出图像,在php中是getimagesize($file)

1

PHP:

<?php 
list($width, $height) = getimagesize("bla.png"); 
echo "<img src='bla.png' width='$width' height='$height'>"; 
?> 
0

你应该用PHP不是用JavaScript做。如果您使用jQuery/javascript添加它,宽度和高度将在加载后添加。指定宽度和高度的主要原因是让引擎更快地渲染页面。如果它在加载后添加,它将毫无帮助。

您可以直接在图像标记中使用getimagesize()返回数组的索引3。它包含一个高度=“yyy”width =“xxx”的字符串,可以直接在IMG标签中使用。

<?php 
    list($width, $height, $type, $attr) = getimagesize("file.png"); 
    echo "<img src='file.png' $attr />"; 
?> 

您可以访问http://php.net/manual/en/function.getimagesize.php了解更多关于此功能的详细信息。