gd庫 調整圖片大小
阿新 • • 發佈:2018-12-18
/* * 調整 頭像大小 * $srcImage 圖片路徑 (絕對路徑) * $maxwidth 動態設定圖片寬度 * $maxheight 動態設定圖片高度 * $name 後期追擊引數 (動態設定圖片名稱) * */ function resizeImage($srcImage,$maxwidth,$maxheight,$name=1) { list($width, $height, $type, $attr) = getimagesize($srcImage); switch ($type) { case 1: $img = imagecreatefromgif($srcImage); break; case 2: $img = imagecreatefromjpeg($srcImage); break; case 3: $img = imagecreatefrompng($srcImage); break; default: $img = imagecreatefrompng($srcImage); break; } $canvas = imagecreatetruecolor($maxwidth,$maxheight); // 建立一個真彩色影象 我把它理解為建立了一個畫布 imagecopyresampled($canvas,$img,0,0,0,0,$maxwidth,$maxheight,$width,$height); // 選取原圖片整個長寬上的畫素,將原圖片左上角和畫布左上角對齊,畫布寬100px,高100px。 // 這樣設定是縮小或放大原圖片。 如果原圖片寬或高比畫布大就會縮小,如果原圖片寬或高比畫布小就會放大。 // 如果想擷取圖片,不想放大或縮小。 就要將最後兩個引數設定成分別和畫布寬和高相等。 像這樣:imagecopyresampled($canvas,$sourceImage,0,0,0,0,$newWidth,$newHeight,$newWidth,$newHeight); // 如果想控制從哪裡開始擷取,就要設定後面兩個“0”。 前面一個“0”是原圖片上X軸座標,後面一個是Y軸座標。 比如,想從原圖片X軸100px,Y軸50px的點開始擷取。就要這樣設定:imagecopyresampled($canvas,$sourceImage,0,0,100,50,$newWidth,$newHeight,$newWidth,$newHeight); return $canvas;//返回引數為已經開啟的圖片格式 }