The example in this article describes how PHP uses GD to create a way to maintain a wide-ratio thumbnail. Share to everyone for your reference. 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 = m) {$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, 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, $h
eight);
Imagedestroy ($sourceImage);
return $thumb; }/** * Save the image to a file.
The Type is determined from the extension.
* $quality is only used for JPEGs.
* Author:mthorn.net/function Imagetofile ($im, $fileName, $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 ', 100); Imagetofile ($im, ' temp-thumbnail.jpg ');
I hope this article will help you with your PHP programming.