加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 02:34:26 所属栏目:PHP教程 来源:网络整理
导读:《PHP实战:php使用GD创建保持宽高比缩略图的方法》要点: 本文介绍了PHP实战:php使用GD创建保持宽高比缩略图的方法,希望对您有用。如果有疑问,可以联系我们。 本篇章节讲解php使用GD创建保持宽高比缩略图的办法.供大家参考研究.具体如下: PHP学

《PHP实战:php使用GD创建保持宽高比缩略图的方法》要点:
本文介绍了PHP实战:php使用GD创建保持宽高比缩略图的方法,希望对您有用。如果有疑问,可以联系我们。

本篇章节讲解php使用GD创建保持宽高比缩略图的办法.分享给大家供大家参考.具体如下:PHP学习

/**
* 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,$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,$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程序设计有所赞助.

欢迎参与《PHP实战:php使用GD创建保持宽高比缩略图的方法》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。

(编辑:李大同)

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

    推荐文章
      热点阅读