要使用PHP生成图片缩略图,要保证你的PHP服务器安装了GD2图形库 使用一个类生成图片的缩略图
1.使用方法
1
2
|
$resizeimage = new resizeimage( "图片源文件地址" , "200" , "100" , "0" , "缩略图地址" ); //就只用上面的一句话,就能生成缩略图,其中,源文件和缩略图地址可以相同,200,100分别代表宽和高 |
2. 缩略图类代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
//使用如下类就可以生成图片缩略图, <?php class resizeimage { //图片类型 var $type ; //实际宽度 var $width ; //实际高度 var $height ; //改变后的宽度 var $resize_width ; //改变后的高度 var $resize_height ; //是否裁图 var $cut ; //源图象 var $srcimg ; //目标图象地址 var $dstimg ; //临时创建的图象 var $im ; function resizeimage( $img , $wid , $hei , $c , $dstpath ) { $this ->srcimg = $img ; $this ->resize_width = $wid ; $this ->resize_height = $hei ; $this ->cut = $c ; //图片的类型 $this ->type = strtolower ( substr ( strrchr ( $this ->srcimg, "." ),1)); //初始化图象 $this ->initi_img(); //目标图象地址 $this -> dst_img( $dstpath ); //-- $this ->width = imagesx( $this ->im); $this ->height = imagesy( $this ->im); //生成图象 $this ->newimg(); ImageDestroy ( $this ->im); } function newimg() { //改变后的图象的比例 $resize_ratio = ( $this ->resize_width)/( $this ->resize_height); //实际图象的比例 $ratio = ( $this ->width)/( $this ->height); if (( $this ->cut)== "1" ) //裁图 { if ( $ratio >= $resize_ratio ) //高度优先 { $newimg = imagecreatetruecolor( $this ->resize_width, $this ->resize_height); imagecopyresampled( $newimg , $this ->im, 0, 0, 0, 0, $this ->resize_width, $this ->resize_height, (( $this ->height)* $resize_ratio ), $this ->height); ImageJpeg ( $newimg , $this ->dstimg); } if ( $ratio < $resize_ratio ) //宽度优先 { $newimg = imagecreatetruecolor( $this ->resize_width, $this ->resize_height); imagecopyresampled( $newimg , $this ->im, 0, 0, 0, 0, $this ->resize_width, $this ->resize_height, $this ->width, (( $this ->width)/ $resize_ratio )); ImageJpeg ( $newimg , $this ->dstimg); } } else //不裁图 { if ( $ratio >= $resize_ratio ) { $newimg = imagecreatetruecolor( $this ->resize_width,( $this ->resize_width)/ $ratio ); imagecopyresampled( $newimg , $this ->im, 0, 0, 0, 0, $this ->resize_width, ( $this ->resize_width)/ $ratio , $this ->width, $this ->height); ImageJpeg ( $newimg , $this ->dstimg); } if ( $ratio < $resize_ratio ) { $newimg = imagecreatetruecolor(( $this ->resize_height)* $ratio , $this ->resize_height); imagecopyresampled( $newimg , $this ->im, 0, 0, 0, 0, ( $this ->resize_height)* $ratio , $this ->resize_height, $this ->width, $this ->height); ImageJpeg ( $newimg , $this ->dstimg); } } } //初始化图象 function initi_img() { if ( $this ->type== "jpg" ) { $this ->im = imagecreatefromjpeg( $this ->srcimg); } if ( $this ->type== "gif" ) { $this ->im = imagecreatefromgif( $this ->srcimg); } if ( $this ->type== "png" ) { $this ->im = imagecreatefrompng( $this ->srcimg); } } //图象目标地址 function dst_img( $dstpath ) { $full_length = strlen ( $this ->srcimg); $type_length = strlen ( $this ->type); $name_length = $full_length - $type_length ; $name = substr ( $this ->srcimg,0, $name_length -1); $this ->dstimg = $dstpath ; //echo $this->dstimg; } } ?> |