天天看點

通過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(){

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/