• 技术文章 >后端开发 >php教程

    php使用GD创建保持宽高比缩略图的方法,phpgd缩略图_PHP教程

    2016-07-13 09:56:57原创337

    php使用GD创建保持宽高比缩略图的方法,phpgd缩略图


    本文实例讲述了php使用GD创建保持宽高比缩略图的方法。分享给大家供大家参考。具体如下:

    /**
    * Create a thumbnail image from $inputFileName no taller or wider than
    * $maxSize. Returns the new image resource or false on error.
    * Author: mthorn.net
    */
    function thumbnail($inputFileName, $maxSize = 100)
    {
     $info = getimagesize($inputFileName);
      $type = isset($info['type']) ? $info['type'] : $info[2];
      // Check support of file type
     if ( !(imagetypes() & $type) )
     {
       // Server does not support file type
       return false;
     }
      $width = isset($info['width']) ? $info['width'] : $info[0];
     $height = isset($info['height']) ? $info['height'] : $info[1];
      // Calculate aspect ratio
     $wRatio = $maxSize / $width;
     $hRatio = $maxSize / $height;
      // Using imagecreatefromstring will automatically detect the file type
     $sourceImage = imagecreatefromstring(file_get_contents($inputFileName));
      // Calculate a proportional width and height no larger than the max size.
     if ( ($width <= $maxSize) && ($height <= $maxSize) )
     {
       // Input is smaller than thumbnail, do nothing
       return $sourceImage;
     }
     elseif ( ($wRatio * $height) < $maxSize )
     {
       // Image is horizontal
       $tHeight = ceil($wRatio * $height);
       $tWidth = $maxSize;
     }
     else
     {
       // Image is vertical
       $tWidth = ceil($hRatio * $width);
       $tHeight = $maxSize;
     }
      $thumb = imagecreatetruecolor($tWidth, $tHeight);
      if ( $sourceImage === false )
     {
       // Could not load image
       return false;
     }
      // Copy resampled makes a smooth thumbnail
     imagecopyresampled($thumb,$sourceImage,0,0,0,0,$tWidth,$tHeight,$width,$height);
     imagedestroy($sourceImage);
      return $thumb;
    }
     /**
    * Save the image to a file. Type is determined from the extension.
    * $quality is only used for jpegs.
    * Author: mthorn.net
    */
    function imageToFile($im, $fileName, $quality = 80)
    {
     if ( !$im || file_exists($fileName) )
     {
       return false;
     }
      $ext = strtolower(substr($fileName, strrpos($fileName, '.')));
      switch ( $ext )
     {
      case '.gif':
      imagegif($im, $fileName);
      break;
      case '.jpg':
      case '.jpeg':
      imagejpeg($im, $fileName, $quality);
      break;
      case '.png':
      imagepng($im, $fileName);
      break;
      case '.bmp':
      imagewbmp($im, $fileName);
      break;
      default:
      return false;
     }
      return true;
    }
    $im = thumbnail('temp.jpg', 100);
    imageToFile($im, 'temp-thumbnail.jpg');

    希望本文所述对大家的php程序设计有所帮助。

    www.bkjia.comtruehttp://www.bkjia.com/PHPjc/985269.htmlTechArticlephp使用GD创建保持宽高比缩略图的方法,phpgd缩略图 本文实例讲述了php使用GD创建保持宽高比缩略图的方法。分享给大家供大家参考。具体如...

    php入门到就业线上直播课:查看学习

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    快捷开发Web应用及小程序:点击使用

    支持亿级表,高并发,自动生成可视化后台。

    专题推荐:php GD 缩略图 缩略图
    上一篇:PHP学习笔记(一):基本语法之标记、空白、和注释,学习笔记基本语法_PHP教程 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 详解PHP会话如何实现在30分钟后被销毁(附代码实例)• php文件上传类与详解(1/2)_PHP教程• PHP中全面阻止SQL注入式攻击分析小结_PHP教程• 一棵php的类树(支持无限分类)_PHP教程• php 不使用js实现页面跳转_php技巧
    1/1

    PHP中文网