首先是js的方法,通过new一个Image对象,设置src属性,并监听complete和onload事件,图片加载完成后输出图片的宽度和高度
function checkPicurl(url){
var img = new Image();img.src = url;
img.onerror = function(){
alert(name+" 图片加载失败,请检查url是否正确");
return false;
};
if(img.complete){
console.log(img.width+" "+img.height);
}else{
img.onload = function(){
console.log(img.width+" "+img.height);
img.οnlοad=null; //避免重复加载
}
}
}
php方法:
使用php是因为出现了这样的需求:已经入库一批数据,这些数据的url字段值没有拼接图片宽和高的信息,而需求是希望记录,这样就要从表中识别出没有拼图片宽高的数据,并分别获取每个图片url的尺寸信息,在更新到表中。通过java实现相对繁琐,而php中提供了GetImageSize函数,可以获取本地和网络图片的尺寸信息,函数说明如下:
GetImageSize:取得图片的长宽。
语法: array getimagesize(string filename, array [imageinfo]);
返回值: 数组
函数种类: 图形处理
内容说明
本函数可用来取得 GIF、JPEG 及 PNG 三种 WWW 上图片的高与宽,不需要安装 GD library 就可以使用本函数。返回的数组有四个元素。返回数组的第一个元素 (索引值 0) 是图片的高度,单位是像素 (pixel)。第二个元素 (索引值 1) 是图片的宽度。第三个元素 (索引值 2) 是图片的文件格式,其值 1 为 GIF 格式、 2 为 JPEG/JPG 格式、3 为 PNG 格式。第四个元素 (索引值 3) 为图片的高与宽字符串,height=xxx width=yyy。可省略的参数 imageinfo 用来取得一些图片的相关信息,例如 IPTC (http://www.xe.net/iptc) 的 APP13 标记,就可以加在图片中,可利用 iptcparse() 来解析。
使用范例
<?php
function MyImg($imgfile) {
$size = GetImageSize($imgfile);
echo "<img src=\"$imgfile\" $size[3]>";
}
MyImg("img/img1.gif");
MyImg("http://img02.sogoucdn.com/app/a/100520052/5a1f885e25b7af28822b14dc069a5f16");
?>