PHP生成图片缩略图

1. [代码]使用方法     

?
1
2
$resizeimage = new resizeimage( "图片源文件地址" , "200" , "100" , "0" , "缩略图地址" );
//就只用上面的一句话,就能生成缩略图,其中,源文件和缩略图地址可以相同,200,100分别代表宽和高

2. [代码][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
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;
     }
}
?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值