本文实例讲述了php封装的图片(缩略图)处理类。分享给大家供大家参考,具体如下:
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
|
<?php //图片处理工具类 class Image{ //属性 private $thumb_width ; //缩略图的宽 private $thumb_height ; //错误属性 public $thumb_error ; //构造方法 public function __construct( $width = 0, $height = 0){ $this ->thumb_width = ( $width == 0) ? $GLOBALS [ 'config' ][ 'admin_goods_thumb' ][ 'width' ] : $width ; $this ->thumb_height = ( $height == 0) ? $GLOBALS [ 'config' ][ 'admin_goods_thumb' ][ 'height' ] : $height ; } /* * 制作缩略图 * @param1 string $src,原图路径,/uploads/20150122101010abcdef.gif * @param2 string $path,缩略图保存路径/uploads/thumb_20150122101010abcdef.gif * @return 缩略图的名字 */ public function makeThumb( $src , $path ){ //判断原图是否存在 if (! file_exists ( $src )){ $this ->thumb_error = '原图不存在!' ; return false; } //打开原图资源 //获取能够使用的后缀 $ext = $this ->getFunctionName( $src ); //gif //拼凑函数名 $open = 'imagecreatefrom' . $ext ; //imagecreatefromgif $save = 'image' . $ext ; //imagegif //如果不清楚;echo $open,$save;exit; //可变函数打开原图资源 $src_img = $open ( $src ); //利用可变函数打开图片资源 //imagecreatefromgif($src) //缩略图资源 $dst_img = imagecreatetruecolor( $this ->thumb_width, $this ->thumb_height); //背景色填充白色 $dst_bg_color = imagecolorallocate( $dst_img ,255,255,255); imagefill( $dst_img ,0,0, $dst_bg_color ); //宽高比确定宽高 $dst_size = $this ->thumb_width / $this ->thumb_height; //获取原图数据 $file_info = getimagesize ( $src ); $src_size = $file_info [0]/ $file_info [1]; //求出缩略图宽和高 if ( $src_size > $dst_size ){ //原图宽高比大于缩略图 $width = $this ->thumb_width; $height = round ( $width / $src_size ); } else { $height = $this ->thumb_height; $width = round ( $height * $src_size ); } //求出缩略图起始位置 $dst_x = round ( $this ->thumb_width - $width )/2; $dst_y = round ( $this ->thumb_height - $height )/2; //制作缩略图 if (imagecopyresampled( $dst_img , $src_img , $dst_x , $dst_y ,0,0, $width , $height , $file_info [0], $file_info [1])){ //采样成功:保存,将文件保存到对应的路径下 $thumb_name = 'thumb_' . basename ( $src ); $save ( $dst_img , $path . '/' . $thumb_name ); //保存成功 return $thumb_name ; } else { //采样失败 $this ->thumb_error = '缩略图采样失败!' ; return false; } } /* * 获取文件要调用的函数名 * @param1 string $file,文件名字 * @return 通过文件后缀名得到的函数字符串 */ private function getFunctionName( $file ){ //得到文件的后缀 $file_info = pathinfo ( $file ); $ext = $file_info [ 'extension' ]; //后缀:gif,png,jpg,jpeg,pjpeg //imagecreatefromgif,imagecreatefromjpeg,imagecreatefrompng //定义一个数组保存函数名 $func = array ( 'gif' => 'gif' , 'png' => 'png' , 'jpg' => 'jpeg' , 'jpeg' => 'jpeg' , 'pjpeg' => 'jpeg' ); //返回值 return $func [ $ext ]; } } |
希望本文所述对大家PHP程序设计有所帮助。