加入收藏 | 设为首页 | 会员中心 | 我要投稿 鹰潭站长网 (https://www.0701zz.cn/)- 图像处理、低代码、云通信、数据工具、物联设备!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP生成缩略图实例讲解

发布时间:2022-07-18 10:00:34 所属栏目:PHP教程 来源:互联网
导读:这篇文章主要介绍了PHP生成缩略图实例讲解,文章列举了实例代码,有正好需要的同学可以借鉴下。 封装的方法函数: ?php /** * 生成缩略图 * $imgSrc 图片源路径 * $thumbWidth 缩略图宽度 * $thumbHeight 缩略图高度 * $thumbSrc 缩略图路径 * $isCut 是否剪
  这篇文章主要介绍了PHP生成缩略图实例讲解,文章列举了实例代码,有正好需要的同学可以借鉴下。
 
  封装的方法函数:
 
  <?php
      /**
    * 生成缩略图
    * $imgSrc     图片源路径
    * $thumbWidth   缩略图宽度
    * $thumbHeight  缩略图高度
    * $thumbSrc    缩略图路径
    * $isCut     是否剪切图片
    */
    function createThumbImg($imgSrc, $thumbWidth, $thumbHeight, $thumbSrc, $isCut = false) {
      //1.获取图片的类型
      $type = substr(strrchr($imgSrc, "."), 1);
      //2.初始化图象
      if ($type == "jpg" || $type == "jpeg") {
              //创建一块画布,并从JPEG文件或URL地址载入一副图像
        $sourceImg = imagecreatefromjpeg($imgSrc);
      }elseif ($type == "gif") {
              //创建一块画布,并从GIF文件或URL地址载入一副图像
        $sourceImg = imagecreatefromgif($imgSrc);
      }elseif ($type == "png") {
              //创建一块画布,并从PNG文件或URL地址载入一副图像
        $sourceImg = imagecreatefrompng($imgSrc);
      }
          elseif ($type == "wbmp") {
              //创建一块画布,并从WBMP文件或URL地址载入一副图像
        $sourceImg = imagecreatefromwbmp($imgSrc);
      }
          //取得图像宽度
      $width = imagesx($sourceImg);
          //取得图像高度
      $height = imagesy($sourceImg);
     
      //3.生成图象
      //缩略图的图象比例
      $scale = ($thumbWidth) / ($thumbHeight);
      //源图片的图象比例
      $ratio = ($width) / ($height);
      if (($isCut) == 1) {
              //高度优先
        if ($ratio >= $scale) {         
                  //创建真彩图像资源(imagecreatetruecolor()函数使用GDLibrary创建新的真彩色图像)
          $newimg = imagecreatetruecolor($thumbWidth, $thumbHeight);
                  //图像处理
          imagecopyresampled($newimg, $sourceImg, 0, 0, 0, 0, $thumbWidth, $thumbHeight, (($height) * $scale), $height);
          //以JPEG格式将图像输出到浏览器或文件
                  ImageJpeg($newimg, $thumbSrc);
        }
               //宽度优先
        if ($ratio < $scale) {        
          $newimg = imagecreatetruecolor($thumbWidth, $thumbHeight);
          imagecopyresampled($newimg, $sourceImg, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $width, (($width) / $scale));
          ImageJpeg($newimg, $thumbSrc);
        }
      } else {
        if ($ratio >= $scale) {
          $newimg = imagecreatetruecolor($thumbWidth, ($thumbWidth) / $ratio);
          imagecopyresampled($newimg, $sourceImg, 0, 0, 0, 0, $thumbWidth, ($thumbWidth) / $ratio, $width, $height);
          ImageJpeg($newimg, $thumbSrc);
        }
        if ($ratio < $scale) {
          $newimg = imagecreatetruecolor(($thumbHeight) * $ratio, $thumbHeight);
          imagecopyresampled($newimg, $sourceImg, 0, 0, 0, 0, ($thumbHeight) * $ratio, $thumbHeight, $width, $height);
          ImageJpeg($newimg, $thumbSrc);
        }
      }
          //销毁图像
      ImageDestroy($sourceImg);
    }
  ?>
  调用示例:
 
  <?php
      //图片源路径
      $imgSrc="D:/PHP/test/demo.jpg";
      //缩略图路径
      $thumbSrc="D:/PHP/test/thumb.jpg";
      createThumbImg($path,100,100,$thumbSrc);
  ?>
   

(编辑:鹰潭站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读