目前在做網頁,所以就順便記下 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']); 

--

轉自 http://blog.yam.com/eviles/article/10921956

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 dizzy03 的頭像
    dizzy03

    碎碎念

    dizzy03 發表在 痞客邦 留言(0) 人氣()