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

PHP生成缩略图实例讲解

发布:smiling 来源: PHP粉丝网  添加日期:2022-04-17 09:56:19 浏览: 评论:0 

这篇文章主要介绍了PHP生成缩略图实例讲解,文章列举了实例代码,有正好需要的同学可以借鉴下。

封装的方法函数:

  1. <?php 
  2.     /** 
  3.   * 生成缩略图 
  4.   * $imgSrc     图片源路径 
  5.   * $thumbWidth   缩略图宽度 
  6.   * $thumbHeight  缩略图高度 
  7.   * $thumbSrc    缩略图路径 
  8.   * $isCut     是否剪切图片 
  9.   */ 
  10.   function createThumbImg($imgSrc$thumbWidth$thumbHeight$thumbSrc$isCut = false) { 
  11.     //1.获取图片的类型 
  12.     $type = substr(strrchr($imgSrc"."), 1); 
  13.     //2.初始化图象 
  14.     if ($type == "jpg" || $type == "jpeg") { 
  15.             //创建一块画布,并从JPEG文件或URL地址载入一副图像 
  16.       $sourceImg = imagecreatefromjpeg($imgSrc); 
  17.     }elseif ($type == "gif") { 
  18.             //创建一块画布,并从GIF文件或URL地址载入一副图像 
  19.       $sourceImg = imagecreatefromgif($imgSrc); 
  20.     }elseif ($type == "png") { 
  21.             //创建一块画布,并从PNG文件或URL地址载入一副图像 
  22.       $sourceImg = imagecreatefrompng($imgSrc); 
  23.     } 
  24.         elseif ($type == "wbmp") { 
  25.             //创建一块画布,并从WBMP文件或URL地址载入一副图像 
  26.       $sourceImg = imagecreatefromwbmp($imgSrc); 
  27.     } 
  28.         //取得图像宽度 
  29.     $width = imagesx($sourceImg); 
  30.         //取得图像高度 
  31.     $height = imagesy($sourceImg); 
  32.    
  33.     //3.生成图象 
  34.     //缩略图的图象比例 
  35.     $scale = ($thumbWidth) / ($thumbHeight); 
  36.     //源图片的图象比例 
  37.     $ratio = ($width) / ($height); 
  38.     if (($isCut) == 1) { 
  39.             //高度优先 
  40.       if ($ratio >= $scale) {         
  41.                 //创建真彩图像资源(imagecreatetruecolor()函数使用GDLibrary创建新的真彩色图像) 
  42.         $newimg = imagecreatetruecolor($thumbWidth$thumbHeight); 
  43.                 //图像处理 
  44.         imagecopyresampled($newimg$sourceImg, 0, 0, 0, 0, $thumbWidth$thumbHeight, (($height) * $scale), $height); 
  45.         //以JPEG格式将图像输出到浏览器或文件 
  46.                 ImageJpeg($newimg$thumbSrc); 
  47.       } 
  48.              //宽度优先 
  49.       if ($ratio < $scale) {        
  50.         $newimg = imagecreatetruecolor($thumbWidth$thumbHeight); 
  51.         imagecopyresampled($newimg$sourceImg, 0, 0, 0, 0, $thumbWidth$thumbHeight$width, (($width) / $scale)); 
  52.         ImageJpeg($newimg$thumbSrc); 
  53.       } 
  54.     } else { 
  55.       if ($ratio >= $scale) { 
  56.         $newimg = imagecreatetruecolor($thumbWidth, ($thumbWidth) / $ratio); 
  57.         imagecopyresampled($newimg$sourceImg, 0, 0, 0, 0, $thumbWidth, ($thumbWidth) / $ratio$width$height); 
  58.         ImageJpeg($newimg$thumbSrc); 
  59.       } 
  60.       if ($ratio < $scale) { 
  61.         $newimg = imagecreatetruecolor(($thumbHeight) * $ratio$thumbHeight); 
  62.         imagecopyresampled($newimg$sourceImg, 0, 0, 0, 0, ($thumbHeight) * $ratio$thumbHeight$width$height); 
  63.         ImageJpeg($newimg$thumbSrc); 
  64.       } 
  65.     } 
  66.         //销毁图像 
  67.     ImageDestroy($sourceImg); 
  68.   } 
  69. ?> 

调用示例:

  1. <?php 
  2.     //图片源路径 
  3.     $imgSrc="D:/PHP/test/demo.jpg"
  4.     //缩略图路径 
  5.     $thumbSrc="D:/PHP/test/thumb.jpg"
  6.     createThumbImg($path,100,100,$thumbSrc); 
  7. ?>

Tags: PHP生成缩略图

分享到: