我的日常

登录/注册
您现在的位置:论坛 盖世程序员(我猜到了开头 却没有猜到结局) 盖世程序员 > php GD库如何生成缩略图
总共48087条微博

动态微博

查看: 1280|回复: 0

php GD库如何生成缩略图

[复制链接]

279

主题

41

听众

689

金钱

版主

该用户从未签到

跳转到指定楼层
楼主
发表于 2015-07-15 20:49:27 |只看该作者 |倒序浏览
分享一个利用 php GD库生成缩略图的例子。
+ m- w( N& |: S: X$ Gphp利用GD库生成缩略图。 , P  Q1 [- f/ R- A& w" m+ ~- G
代码:/ q1 L0 q/ o; q4 S' z. ]
  1. <form method=“post” action=“suo_do.php” enctype=“multipart/form-data”>   
    / e" I$ ^& B1 a* L$ E
  2. <input type=“file” name=“pic” />   ) m1 c/ C9 w* O/ L3 X7 w) K/ z( u8 B
  3. <input type=“submit” value=“上传1″ />   ( ?; f3 b. _) Y  t) t9 P
  4. </form>   
    * O4 `- B/ n: C/ T# ~. h* [
  5. <?php   
    ' e* U# V" G& w8 t3 `+ g6 h. V6 G+ F
  6. header(“content-type:text/html;charset=gbk”);   ; m% z2 S1 y$ R+ W; E0 N
  7. ini_set(“date.timezone”,“Asia/chong”);   6 i. L" o3 r6 H; k. d
  8. //判断文件是否为空   , ^7 k( z' s' K% {6 D( T
  9. if(empty($_FILES)){   1 \3 m" {( k9 ]+ Z
  10. echo“上传文件过大”;   - E0 o: [6 h$ ?. [
  11. exit;   5 m# v) ?8 T: O) J! A% F5 R: ~
  12. }   
    7 ^- U+ C9 ~. z  d7 Z
  13. //判断文件上传是否有错误   : h! S. H! m* ]9 `; J7 g
  14. if($_FILES['pic']['error']){   
    2 y4 q% J& ]/ u# q+ V- W' \" j9 r
  15. echo “上传文件”;   
    ( d6 K& I. U/ J# X: o# m- t
  16. exit;   + o- b! F; g( P: F/ Q" l1 m
  17. }   $ M! C, j7 y) d0 C
  18. //判断文件类型是否非法获取文件后缀   
    : H7 G7 [; v, o' s4 k3 i3 {
  19. $allowtype=array(“jpg”,“png”,“jpeg”,“gif”);   
    - h/ E. }; W( z5 B- n
  20. $a=explode(‘.’,$_FILES['pic']['name']);   
    / G# Y+ d! }3 J
  21. $index=count($a)-1;   
    6 _+ k. X$ i4 `, w4 Z7 l; u* t
  22. $ex=strtolower($a[$index]);   
    , b# j% t; c+ y6 ?# Z
  23. if(!in_array($ex,$allowtype)){   " r3 x8 k$ i5 y. N
  24. echo “上传文件非法”;   
    : `0 Y# k1 [5 A/ W- s0 {
  25. exit;   
    " r9 a9 l! l3 [' h: ~; v. i+ C
  26. }   
    * w: `% x5 S# A
  27. $file=date(‘YmdHis’).rand().“.”.$ex;   1 F! X% K$ A$ ^4 T; A6 M' l
  28. $src=$_FILES['pic']['tmp_name'];   
    % c, {" s0 Y6 s6 n$ C1 _) l% b
  29. $des=“upload/”.$file;   ) ?4 q5 L; s( _# }
  30. $rs=move_uploaded_file($src,$des);   5 K$ H5 M3 d% t3 r) N
  31.   
    4 }8 s' V$ P7 r4 a1 A& [: p
  32. //缩略图   $ g, |! m+ D; ^, @, Y; F
  33. //读取已经上传图片   ; S8 ]. K& h; c  P
  34. $image=imagecreatefromjpeg($des);   
    3 M4 |$ B/ P+ q0 M% {5 x
  35. $a=getimagesize($des);   4 _8 I, e7 H& l2 P3 a& J% W
  36. $w=$a[0];   
    6 t' D2 j, D5 _9 {2 n& p  }
  37. $h=$a[1];   3 L: a2 \: g  C$ Z* J( g$ U* A9 V
  38. if($w>$h){   , n/ o9 U3 `/ C1 `8 g6 c& G
  39. $width=300;     g0 [" p$ R- A) K+ ~
  40. $height=$width/$w*$h;   , }$ h# L* E( S# W  ~0 c  o
  41. }else if($w<$h){   
    6 o4 s& i4 a: M* D; b6 t8 ?! Q! r
  42. $height=300;     C' Q4 d% c0 ]3 q5 u8 b
  43. $width=$height/$h*$w;   
    ' L0 _9 M$ u3 U+ B
  44. }else{   
    ! H0 `9 y: S# ?+ G# O2 Y
  45. $width=300;   4 `/ _; L0 a+ T( l8 C7 i4 T2 {& A
  46. $height=300;   
    2 ?! J8 H+ g6 [& E3 p0 K( b
  47. } www.jbxue.com  " m' `+ S4 @/ j8 |
  48. //创建空白新图片   
    $ q) S4 U0 j4 ?; S! a
  49. $newimage=imagecreatetruecolor($width, $height);   
    - Z' O* X0 U1 Q8 u  ~) i$ S
  50. //copy源图片内容 copy新图片   : k1 _0 P& u+ f" J, k
  51. imagecopyresized($newimage, $image, 0,0, 0,0, $width, $height, $w, $h);   
    % o0 Y: L3 r  h  r+ e0 J  s- z& v
  52. $filename=“upload/s_”.$file;   - ?: n+ o. j7 M9 D
  53. imagejpeg($newimage,$filename);   
复制代码

  l# @" m" v, U3 q& a
0 j" A- B5 B+ v+ F9 m# o$ Q& `& A

! v: w7 f" G  [& W# Y& A- q

科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、科帮网管理员和版主有权不事先通知发贴者而删除本文


JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

快速回复
您需要登录后才可以回帖 登录 | 立即注册

   

关闭

站长推荐上一条 /1 下一条

发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
快速回复 返回顶部 返回列表