图像处理_等比例居中裁剪图片_可添加水印

 1 //参数:图片路径,生成的宽度,生成的高度
 2 //功能:切片图片不影响比例居中切片支持jpg,jpeg,png,gif,wbmp格式图片
 3 function imgthumb($url,$w,$h,$str="",$print){
 4     try{
 5         // if(!file_exists($url))
 6         // {
 7         //     throw new Exception('文件不存在!');
 8         // }
 9         $ext=pathinfo($url,PATHINFO_EXTENSION);
10         switch($ext){
11             case 'jpg':
12             case 'jpeg':
13                 $im=imagecreatefromjpeg($url);
14             break;
15             case 'png':
16                 $im=imagecreatefrompng($url);
17             break;
18             case 'gif':
19                 $im=imagecreatefromgif($url);
20             break;
21             case 'wbmp':
22                 $im=imagecreatefromwbmp($url);
23             break;
24             default:
25                 die('文件格式不支持');
26         }
27         
28         $imarr=getimagesize($url);
29         $height=$imarr[1];
30         $width=$imarr[0];
31         $pro=$height / $width;
32         $targetpro=$h / $w;
33         $trueimg=imagecreatetruecolor($w,$h);
34         if($targetpro>$pro)
35         {
36         $ws=$h/$pro;
37         $x=($ws-$w)/2;
38         imagecopyresampled($trueimg,$im,0,0,$x,0,$ws,$h,$width,$height);
39         }
40         else{
41             $hs=$w*$pro;
42             $y=-($h-$hs)/2;
43             imagecopyresampled($trueimg,$im,0,0,0,$y,$w,$hs,$width,$height);
44         }
45         if($print)
46         {
47         $trueimg=imgprint($trueimg,$str);
48         }
49         header('content-type:'.$imarr['mime']);
50         switch($ext){
51             case 'jpg':
52             case 'jpeg':
53             case 'png':
54                 imagejpeg($trueimg,null,100);
55             break;
56    
57                 imagepng($trueimg);
58             break;
59             case 'gif':
60                 imagegif($trueimg);
61             break;
62             case 'wbmp':
63                 image2wbmp($trueimg);
64             break;
65             default:
66                 return false;
67         }
68         imagedestroy($trueimg);
69     }catch(Exception $e){
70         echo $e->getMessage();
71     }
72 }
73 function imgprint($to,$str)
74 {
75     try{
76        
77         // 建立一幅的图像
78         $im = imagecreate(200,40);
79         // 白色背景和蓝色文本
80         $bg = imagecolorallocate($im, 255, 255, 255);
81         $textcolor = imagecolorallocate($im, 255, 0, 0);
82         // 把字符串写在图像左上角
83         imagestring($im,5, 30, 10, $str, $textcolor);
84         #$toimg=imagecreatefromjpeg($to);
85         $toimg=$to;
86         imagecopymerge($toimg,$im,imagesx($toimg)-imagesx($im),imagesy($toimg)-imagesy($im),0,0,200,40,50);//修改位置
87         return $toimg;
88         #header('content-type:'.getimagesize($to)['mime']);
89         #imagejpeg($toimg,null,100);
90     }catch(Exception $e){
91         echo $e->getMessage();
92     }
93 }
94 $img=$_REQUEST['imgpath'];
95 $x=isset($_REQUEST['x'])?$_REQUEST['x']:300;
96 $y=isset($_REQUEST['y'])?$_REQUEST['y']:300;
97 $print=isset($_REQUEST['print'])?$_REQUEST['print']:false;
98 $str='xxxx';
99 imgthumb($img,$x,$y,$str,$print);
 
原文地址:https://www.cnblogs.com/huangcaijin/p/13064502.html