温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

php如何使用GD创建保持宽高比缩略图

发布时间:2021-09-02 11:48:37 来源:亿速云 阅读:163 作者:小新 栏目:开发技术

这篇文章主要介绍了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如何使用GD创建保持宽高比缩略图”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI