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);