目前在做網頁,所以就順便記下 PHP 上傳圖片然後將之自動的建立一個圖片的縮圖的方法。
基本上,這部分只要 Server 上有支援 GD 就可以達成了!做法十分簡單,只要使用 imagecopyresampled()即可完成縮圖的工作。
upload.php
<form method="post" enctype="multipart/form-data" action="resize.php">
<input name="file" type="file"><input name="upload" type="submit" value="上傳">
</form>
要上傳檔案,一定要將 form 的 enctype 設成 multipart/form-data 。
resize.php
// 取得上傳圖片
$src = imagecreatefromjpeg($_FILES['file']['tmp_name']);
// 取得來源圖片長寬
$src_w = imagesx($src);
$src_h = imagesy($src);
// 假設要長寬不超過90
if($src_w > $src_h){
$thumb_w = 90;
$thumb_h = intval($src_h / $src_w * 90);
}else{
$thumb_h = 90;
$thumb_w = intval($src_w / $src_h * 90);
}
// 建立縮圖
$thumb = imagecreatetruecolor($thumb_w, $thumb_h);
// 開始縮圖
imagecopyresampled($thumb, $src, 0, 0, 0, 0, $thumb_w, $thumb_h, $src_w, $src_h);
// 儲存縮圖到指定 thumb 目錄
imagejpeg($thumb, "thumb/".$_FILES['file']['name']);
// 複製上傳圖片到指定 images 目錄
copy($_FILES['file']['tmp_name'], "images/" . $_FILES['file']['name']);
--
留言列表