通過url獲取圖片尺寸的幾種方法:JS和php

首先是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");
?>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章