当前位置:首页 > PHP教程 > php图像处理 > 列表

php gd库函数生成高清缩略图程序

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-19 10:37:26 浏览: 评论:0 

gd库是php教程中一个处理图像的专用库,他可以方便快捷的处理大多数据处理,它提供了大量的图片处理函数,下面我们就利用gd库的函数来生成缩略图.

测试代码如下:

  1. <?php  
  2. include('resizeimage.php');  
  3. if(!emptyempty($_post)){  
  4. echo($filename.".jpg?cache=".rand(0,999999));  
  5. }  
  6. ?>  
  7. <form name="test" action="?submit=true" enctype="multipart/form-data" method="post" >  
  8. <input type="file" name="image" size="50" value="浏览"><p>  
  9. <input type="submit" value="上传图片">  
  10. </form>  

resizeimage.php 文件代码如下:

  1. <?php  
  2. $filename="image.thumb";  
  3. // 生成图片的宽度  
  4. $resizewidth=400;  
  5. // 生成图片的高度  
  6. $resizeheight=400; 
  7.  
  8. function resizeimage($im,$maxwidth,$maxheight,$name){  
  9. $width = imagesx($im);  
  10. $height = imagesy($im);  
  11. if(($maxwidth && $width > $maxwidth) || ($maxheight && $height > $maxheight)){  
  12. if($maxwidth && $width > $maxwidth){  
  13. $widthratio = $maxwidth/$width;  
  14. $resizewidth=true;  
  15. }  
  16. if($maxheight && $height > $maxheight){  
  17. $heightratio = $maxheight/$height;  
  18. $resizeheight=true;  
  19. }  
  20. if($resizewidth && $resizeheight){  
  21. if($widthratio < $heightratio){  
  22. $ratio = $widthratio;  
  23. }else{  
  24. $ratio = $heightratio;  
  25. }  
  26. }elseif($resizewidth){  
  27. $ratio = $widthratio;  
  28. }elseif($resizeheight){  
  29. $ratio = $heightratio;  
  30. }  
  31. $newwidth = $width * $ratio;  
  32. $newheight = $height * $ratio;  
  33. if(function_exists("imagecopyresampled")){  
  34. $newim = imagecreatetruecolor($newwidth$newheight);  
  35. imagecopyresampled($newim$im, 0, 0, 0, 0, $newwidth$newheight$width$height);  
  36. }else{  
  37. $newim = imagecreate($newwidth$newheight);  
  38. imagecopyresized($newim$im, 0, 0, 0, 0, $newwidth$newheight$width$height);  
  39. }  
  40. imagejpeg ($newim,$name . ".jpg");  
  41. imagedestroy ($newim);  
  42. }else{  
  43. imagejpeg ($im,$name . ".jpg");  
  44. }  
  45.  
  46. if($_files['image']['size']){  
  47. if($_files['image']['type'] == "image/pjpeg"){  
  48. $im = imagecreatefromjpeg($_files['image']['tmp_name']);  
  49. }elseif($_files['image']['type'] == "image/x-png"){  
  50. $im = imagecreatefrompng($_files['image']['tmp_name']);  
  51. }elseif($_files['image']['type'] == "image/gif"){  
  52. $im = imagecreatefromgif($_files['image']['tmp_name']);  
  53. }  
  54. if($im){  
  55. if(file_exists("$filename.jpg")){  
  56. unlink("$filename.jpg");  
  57. }  
  58. resizeimage($im,$resizewidth,$resizeheight,$filename);  
  59. imagedestroy ($im);  
  60. }  
  61. //开源代码phpfensi.com 
  62. ?> 

Tags: php gd库函数 缩略图程序

分享到: