2013年11月10日 星期日

PHP自動產生縮圖

在上傳圖檔時
有些會需要順便產生縮圖
供瀏覽的時候使用
避免圖檔過大
以致影響瀏覽速度


在PHP上產生縮圖
可使用php的GD功能
直接使用 imagecopyresampled() 或 imagecopyresized()
就可以產生縮圖

要有支援GD功能
可先查看phpinfo()


















建立空白縮圖
背景預設是黑色
可以使用 imagecolorallocate() 跟 imagefilledrectangle() 將縮圖先填入顏色
再將來源圖檔依比例填入縮圖檔案


1
2
3
4
5
6
7
8
9
10
11
12
13
14   
$src = imagecreatefromjpeg("./old.jpg");    //讀取來源圖檔
$src_w = imagesx($src);     //取得來源圖檔長寬
$src_h = imagesy($src);
$new_w = 100;               //新圖檔長寬
$new_h = 100;
$thumb = imagecreatetruecolor($new_w, $new_h);    //建立空白縮圖
//設定空白縮圖的背景,如不設定,背景預設為黑色
$bg = imagecolorallocate($thumb,255,0,255);       //空白縮圖的背景顏色
imagefilledrectangle($thumb,0,0,$src_w,$src_h,$bg); //將顏色填入縮圖
//執行縮圖
imagecopyresampled($thumb, $src, 0, 0, 0, 0, $new_w, $new_h, $src_w, $src_h);
imagejpeg($thumb, "./new.jpg");

沒有留言: