[PHP] 圖片置中 使用getimagesize
一般社群網站的個人圖像,大多在列表顯示的時候都會是正方形的,這樣會比較整齊,可是不會每個人都上傳圖片的時候都傳正方形的圖片,所以在顯示的時候就要做一些設定。
首先準備一個div包著img,讓外層的div的position為relative,並設overflow:hidden,內層的img則把position設為absolute,這樣可以先避免圖片超出區塊破版。
處理最好是在html讀取的時候就處理,所以用php來取得圖片的長寬,使用GD函式庫的getimagesize。
取得後判斷長寬哪個比較大,讓小的那個符合div的寬度,並算出大的那個的大小。
最後在計算(較大邊-div長度)/2,求出偏移量,再用行內的style把值給丟進去就可以了。
首先準備一個div包著img,讓外層的div的position為relative,並設overflow:hidden,內層的img則把position設為absolute,這樣可以先避免圖片超出區塊破版。
處理最好是在html讀取的時候就處理,所以用php來取得圖片的長寬,使用GD函式庫的getimagesize。
- $arr = getimagesize("圖像");
- /*
- * 回傳陣列$arr
- * $arr[0] 為圖像的寬度
- * $arr[1] 為圖像的高度
- * $arr[2] 為圖像的格式,包括jpg、gif和png等
- * $arr[3] 為圖像的寬度和高度,內容為 width="xxx" height="yyy"
- */
取得後判斷長寬哪個比較大,讓小的那個符合div的寬度,並算出大的那個的大小。
最後在計算(較大邊-div長度)/2,求出偏移量,再用行內的style把值給丟進去就可以了。
留言