/* - 限定图片宽度等比缩放图片的简单函数,程序不覆盖图片原图。
- 图片等比缩放函数参数说明:
- $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 "生成缩略图成功.
"; - }else{
- echo "生成缩略图失败。";
- }
- imagedestroy( $im );
- imagedestroy( $n );
- }else{
- echo "图片未超过指定宽度,无需进行缩放。";
- }
- }
|