php图片缩放函数:根据宽度等比缩放图片

发布时间:2019-08-28编辑:脚本学堂
一个php图片缩放函数代码,用于限定图片宽度等比缩放图片,超过限定的图片宽度,才会进行图片尺寸的缩小操作。

php等比例缩放图片的代码
 

复制代码 代码示例:

/*
限定图片宽度等比缩放图片的简单函数,程序不覆盖图片原图。
图片等比缩放函数参数说明:
$imgsrc 原图片地址可以是远程图片也可以是服务器上的路径。
$newimgname 缩小后图片的名称
$kuan 限定图片的宽度,如果超过这个宽度图片才进行缩小操作。

举例:
$imgsrc = "http://www.xingzuo51.com/upload/20141116/20141116010041-0.jpg";//可以是远程图片。
$newimgname = "upload/20141116/000.jpg"; //本地路径前面不要加“/”
$kuan = 600;
img_suofang($imgsrc,$newimgname,$kuan); //调用图片缩小函数
 */
function img_suofang($imgsrc,$newimgname,$kuan){
 $info = getimagesize($imgsrc); //取得图片信息
 list($w,$h) = $info;
 $bl = ($h/$w);
 // print_r($info);
 // die();
 // $type = $info[2];
 // die($type);
 if($w>$kuan){
   $k = $kuan;
   $g = ($k*$bl);
   switch($info[2]){
 case 1:
   $im = imagecreatefromgif($imgsrc);
   $n = imagecreatetruecolor($k,$g);
   imagecopyresampled($n,$im,0,0,0,0,$k,$g,$w,$h);
   $type = ".gif";
   imagegif($n,$newimgname."$type");
 break;
 case 2:
   $im = imagecreatefromjpeg($imgsrc);
   $n = imagecreatetruecolor($k,$g);
   imagecopyresampled($n,$im,0,0,0,0,$k,$g,$w,$h);
   $type = ".jpg";
   imagejpeg($n,$newimgname.$type);
   break;
 case 3:
   $im = imagecreatefrompng($imgsrc);
   $n = imagecreatetruecolor($k,$g);
   imagecopyresampled($n,$im,0,0,0,0,$k,$g,$w,$h);
   $type = ".png";
   imagepng($n,$newimgname.$type);
   break;
 default:
   die("No jpg Image");
   break;
}

if ($im && $n) {
  echo "生成缩略图成功.<br><img src="".$newimgname.$type."?i=".date("s")."">";
}else{
  echo "生成缩略图失败。";
}
  imagedestroy( $im );
  imagedestroy( $n );
}else{
  echo "图片未超过指定宽度,无需进行缩放。";
 }
}