• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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);
    ?>

    到此这篇关于PHP生成缩略图实例讲解的文章就介绍到这了,更多相关PHP生成缩略图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • ThinkPHP菜单无极分类实例讲解
    • Thinkphp自定义美化success和error提示跳转页面代码实例
    • PHP随机生成18位不重复的订单号代码实例
    • PHP上传目录禁止执行php文件实例讲解
    上一篇:Discuz论坛标题和底部去掉版权信息实例讲解
    下一篇:ThinkPHP菜单无极分类实例讲解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP生成缩略图实例讲解 PHP,生成,缩,略图,实例,讲解,