note 58475 added to function.imagecopyresampled

From: Date: Sat, 05 Nov 2005 10:21:05 +0000
Subject: note 58475 added to function.imagecopyresampled
Groups: php.notes 
Request: Send a blank email to php-notes+get-98124@lists.php.net to get a copy of this message
I've changed the script from info at lontronics dot nl a little bit so the thumbnail is not cutted off when this is not necessary. <?php // Resize function // $pictype is optional. When empty the image will not be cutted off function resize($filename, $dest, $width, $height, $pictype = "") { $format = strtolower(substr(strrchr($filename,"."),1)); switch($format) { case 'gif' : $type ="gif"; $img = imagecreatefromgif($filename); break; case 'png' : $type ="png"; $img = imagecreatefrompng($filename); break; case 'jpg' : $type ="jpg"; $img = imagecreatefromjpeg($filename); break; case 'jpeg' : $type ="jpg"; $img = imagecreatefromjpeg($filename); break; default : die ("ERROR; UNSUPPORTED IMAGE TYPE"); break; } list($org_width, $org_height) = getimagesize($filename); $xoffset = 0; $yoffset = 0; if ($pictype == "thumb") // To minimize destortion { if ($org_width / $width > $org_height/ $height) { $xtmp = $org_width; $xratio = 1-((($org_width/$org_height)-($width/$height))/2); $org_width = $org_width * $xratio; $xoffset = ($xtmp - $org_width)/2; } elseif ($org_height/ $height > $org_width / $width) { $ytmp = $org_height; $yratio = 1-((($width/$height)-($org_width/$org_height))/2); $org_height = $org_height * $yratio; $yoffset = ($ytmp - $org_height)/2; } //Added this else part ------------- } else { $xtmp = $org_width/$width; $new_width = $width; $new_height = $org_height/$xtmp; if ($new_height > $height){ $ytmp = $org_height/$height; $new_height = $height; $new_width = $org_width/$ytmp; } $width = round($new_width); $height = round($new_height); } $img_n=imagecreatetruecolor ($width, $height); imagecopyresampled($img_n, $img, 0, 0, $xoffset, $yoffset, $width, $height, $org_width, $org_height); if($type=="gif") { imagegif($img_n, $dest); } elseif($type=="jpg") { imagejpeg($img_n, $dest); } elseif($type=="png") { imagepng($img_n, $dest); } elseif($type=="bmp") { imagewbmp($img_n, $dest); } Return true; } ?> ---- Manual Page -- http://www.php.net/manual/en/function.imagecopyresampled.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+58475 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+58475&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+58475&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+58475&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+58475&report=yes&reason=useless Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+58475&report=yes&reason=non-english Delete: already in docs -- http://master.php.net/manage/user-notes.php?action=delete+58475&report=yes&reason=already+in+docs Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+58475&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+58475&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#98124) next »