首先是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(){
img.onload=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");
?>
如何聯系我:【萬裡虎】www.bravetiger.cn
【QQ】3396726884 (咨詢問題100元起,幫助解決問題500元起)
【部落格】http://www.cnblogs.com/kenshinobiy/