频道栏目
首页 > 资讯 > 图像编程 > 正文

用php GD库生成高质量的缩略图片

16-01-07        来源:[db:作者]  
收藏   我要投稿
GD库在php中的应用是很广泛的,本文笔者用实例程序来说明如何用GD库和php程序来控制图片。
1. <?  
   2.   
   3. $FILENAME="image_name";  
   4.   
   5. // 生成图片的宽度  
   6. $RESIZEWIDTH=400;  
   7.   
   8. // 生成图片的高度  
   9. $RESIZEHEIGHT=400;  
  10.   
  11.   
  12. function ResizeImage($im,$maxwidth,$maxheight,$name){  
  13.     $width = imagesx($im);  
  14.     $height = imagesy($im);  
  15.     if(($maxwidth && $width > $maxwidth) || ($maxheight && $height > $maxheight)){  
  16.         if($maxwidth && $width > $maxwidth){  
  17.             $widthratio = $maxwidth/$width;  
  18.             $RESIZEWIDTH=true;  
  19.         }  
  20.         if($maxheight && $height > $maxheight){  
  21.             $heightratio = $maxheight/$height;  
  22.             $RESIZEHEIGHT=true;  
  23.         }  
  24.         if($RESIZEWIDTH && $RESIZEHEIGHT){  
  25.             if($widthratio < $heightratio){  
  26.                 $ratio = $widthratio;  
  27.             }else{  
  28.                 $ratio = $heightratio;  
  29.             }  
  30.         }elseif($RESIZEWIDTH){  
  31.             $ratio = $widthratio;  
  32.         }elseif($RESIZEHEIGHT){  
  33.             $ratio = $heightratio;  
  34.         }  
  35.         $newwidth = $width * $ratio;  
  36.         $newheight = $height * $ratio;  
  37.         if(function_exists("imagecopyresampled")){  
  38.               $newim = imagecreatetruecolor($newwidth, $newheight);  
  39.               imagecopyresampled($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);  
  40.         }else{  
  41.             $newim = imagecreate($newwidth, $newheight);  
  42.               imagecopyresized($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);  
  43.         }  
  44.         ImageJpeg ($newim,$name . ".jpg");  
  45.         ImageDestroy ($newim);  
  46.     }else{  
  47.         ImageJpeg ($im,$name . ".jpg");  
  48.     }  
  49. }  
  50.   
  51.   
  52. if($_FILES['image']['size']){  
  53.     if($_FILES['image']['type'] == "image/pjpeg"){  
  54.         $im = imagecreatefromjpeg($_FILES['image']['tmp_name']);  
  55.     }elseif($_FILES['image']['type'] == "image/x-png"){  
  56.         $im = imagecreatefrompng($_FILES['image']['tmp_name']);  
  57.     }elseif($_FILES['image']['type'] == "image/gif"){  
  58.         $im = imagecreatefromgif($_FILES['image']['tmp_name']);  
  59.     }  
  60.     if($im){  
  61.         if(file_exists("$FILENAME.jpg")){  
  62.             unlink("$FILENAME.jpg");  
  63.         }  
  64.         ResizeImage($im,$RESIZEWIDTH,$RESIZEHEIGHT,$FILENAME);  
  65.         ImageDestroy ($im);  
  66.     }  
  67. }  
  68.   
  69. ?>  
  70.   
  71. <img src="<? echo($FILENAME.".jpg?reload=".rand(0,999999)); ?>"><br/><br/>  
  72.   
  73. <form enctype="multipart/form-data" method="post">  
  74. <br/>  
  75. <input type="file" name="image" size="50" value="浏览"><p>  
  76. <input type="submit" value="上传图片">  
  77. </form>   
  78.   
  79. </body>  
  80. </html>  
相关TAG标签
上一篇:php jquery 多文件上传
下一篇:该如何使用thinkphp分表呢?
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站