[PHP] 圖片置中 使用getimagesize

一般社群網站的個人圖像,大多在列表顯示的時候都會是正方形的,這樣會比較整齊,可是不會每個人都上傳圖片的時候都傳正方形的圖片,所以在顯示的時候就要做一些設定。

首先準備一個div包著img,讓外層的div的position為relative,並設overflow:hidden,內層的img則把position設為absolute,這樣可以先避免圖片超出區塊破版。

處理最好是在html讀取的時候就處理,所以用php來取得圖片的長寬,使用GD函式庫的getimagesize。

  1. $arr = getimagesize("圖像");   
  2. /*  
  3. * 回傳陣列$arr  
  4. * $arr[0] 為圖像的寬度  
  5. * $arr[1] 為圖像的高度  
  6. * $arr[2] 為圖像的格式,包括jpg、gif和png等  
  7. * $arr[3] 為圖像的寬度和高度,內容為 width="xxx" height="yyy"   
  8. */  

取得後判斷長寬哪個比較大,讓小的那個符合div的寬度,並算出大的那個的大小。
最後在計算(較大邊-div長度)/2,求出偏移量,再用行內的style把值給丟進去就可以了。

留言