note 50604 deleted from function.imagecopyresampled by cmb

From: Date: Wed, 12 Oct 2016 15:44:18 +0000
Subject: note 50604 deleted from function.imagecopyresampled by cmb
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-206859@lists.php.net to get a copy of this message
Note Submitter: djneoform at gmail dot com ---- Here's a function i made that will force a given set of constraints on an image (usrfull if you want to make thumbnails that are all the same size) while keeping aspect ratio. It resizes, then crops the extra off the top or bottom. function forceConstraints($srcFile, $srcType, $dstType, $dstWidth, $dstHeight, $dstPath) { if ($srcType == "image/jpeg") $handle = @imagecreatefromjpeg($srcFile); else if ($srcType == "image/png") $handle = @imagecreatefrompng($srcFile); else if ($srcType == "image/gif") $handle = @imagecreatefromgif($srcFile); else return false; if (!$handle) return false; $srcWidth = @imagesx($handle); $srcHeight = @imagesy($handle); if ($srcWidth >= $dstWidth && $srcHeight >= $dstHeight) { $newHandle = @imagecreatetruecolor($dstWidth, $dstHeight); if (!$newHandle) return false; if($srcHeight < $srcWidth) { $ratio = (double)($srcHeight / $dstHeight); $cpyWidth = round($dstWidth * $ratio); if ($cpyWidth > $srcWidth) { $ratio = (double)($srcWidth / $dstWidth); $cpyWidth = $srcWidth; $cpyHeight = round($dstHeight * $ratio); $xOffset = 0; $yOffset = round(($srcHeight - $cpyHeight) / 2); } else { $cpyHeight = $srcHeight; $xOffset = round(($srcWidth - $cpyWidth) / 2); $yOffset = 0; } } else { $ratio = (double)($srcWidth / $dstWidth); $cpyHeight = round($dstHeight * $ratio); if ($cpyHeight > $srcHeight) { $ratio = (double)($srcHeight / $dstHeight); $cpyHeight = $srcHeight; $cpyWidth = round($dstWidth * $ratio); $xOffset = round(($srcWidth - $cpyWidth) / 2); $yOffset = 0; } else { $cpyWidth = $srcWidth; $xOffset = 0; $yOffset = round(($srcHeight - $cpyHeight) / 2); } } if (!@imagecopyresampled($newHandle, $handle, 0, 0, $xOffset, $yOffset, $dstWidth, $dstHeight, $cpyWidth, $cpyHeight)) return false; @imagedestroy($handle); if ($dstType == "png") @imagepng($newHandle, $dstPath.".png"); else if ($dstType == "jpg") @imagejpeg($newHandle, $dstPath.".jpg", 90); else if ($dstType == "gif") @imagegif($newHandle, $dstPath.".gif"); else return false; @imagedestroy($newHandle); return true; } else { return "Sorry, that image is too small. The image must be at least ".$dstWidth."x".$dstHeight." pixels in size."; } }

« previous php.notes (#206859) next »