PHP uses GD to create a method to maintain the width-to-height ratio thumbnail, phpgd thumbnail image
This example describes how PHP creates a method to maintain a high-aspect ratio thumbnail using GD. Share to everyone for your reference. Specific as follows:
/*** 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 would automatically detect the file type $sourceImage = imagecreatefromstring (file_get_cont Ents ($inputFileName)); Calculate a proportional width and height no larger than the max size. if ($width <= $maxSize) && ($height <= $maxSize)) {//Input is smaller than thumbnail, does nothing re Turn $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 are only used for jpegs.* author:mthorn.net*/function imagetofile ($im, $f Ilename, $quality =) {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 '), Imagetofile ($im, ' temp-thumbnail.jpg ');
I hope this article is helpful to everyone's PHP programming.
http://www.bkjia.com/PHPjc/985269.html www.bkjia.com true http://www.bkjia.com/PHPjc/985269.html techarticle PHP uses GD to create a method to maintain a high-aspect ratio thumbnail, phpgd thumbnail This article describes how PHP uses GD to create a method to maintain a high-aspect ratio thumbnail. Share to everyone for your reference. Specific as ...