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 "图片未超过指定宽度,无需进行缩放。";
}
}