note 98959 deleted from function.imagecopyresampled by danbrown

From: Date: Sun, 18 Jul 2010 14:15:11 +0000
Subject: note 98959 deleted from function.imagecopyresampled by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-170952@lists.php.net to get a copy of this message
Note Submitter: alaa at eoscars dot net ---- "z3n666" added a nice function but i had a problem to use ImageCreateFromXXX with a full path so i changed the function by adding the "@" sign in some places... function _ckdir($fn) { if (strpos($fn,"/") !== false) { $p= substr($fn,0,strrpos($fn,"/")); if (!is_dir($p)) { _o("Mkdir: ".$p); mkdir($p,777,true); } } } function img_resizer($src,$quality,$w,$h,$saveas) { /* v2.5 with auto crop */ $r=1; $e=strtolower(substr($src,strrpos($src,".")+1,3)); if (($e == "jpg") || ($e == "peg")) { $OldImage= @ImageCreateFromJpeg($src) or $r=0; } elseif ($e == "gif") { $OldImage= @ImageCreateFromGif($src) or $r=0; } elseif ($e == "bmp") { $OldImage= @ImageCreateFromwbmp($src) or $r=0; } elseif ($e == "png") { $OldImage= @ImageCreateFromPng($src) or $r=0; } else { _o("Not a Valid Image! (".$e.") -- ".$src);$r=0; } if ($r) { list($width,$height)=getimagesize($src); // check if ratios match $_ratio=array($width/$height,$w/$h); if ($_ratio[0] != $_ratio[1]) { // crop image // find the right scale to use $_scale=min((float)($width/$w),(float)($height/$h)); // coords to crop $cropX=(float)($width-($_scale*$w)); $cropY=(float)($height-($_scale*$h)); // cropped image size $cropW=(float)($width-$cropX); $cropH=(float)($height-$cropY); $crop= @ImageCreateTrueColor($cropW,$cropH); // crop the middle part of the image to fit proportions @ImageCopy( $crop, $OldImage, 0, 0, (int)($cropX/2), (int)($cropY/2), $cropW, $cropH ); } // do the thumbnail $NewThumb= @ImageCreateTrueColor($w,$h); if (isset($crop)) { // been cropped @ImageCopyResampled( $NewThumb, $crop, 0, 0, 0, 0, $w, $h, $cropW, $cropH ); @ImageDestroy($crop); } else { // ratio match, regular resize @ImageCopyResampled( $NewThumb, $OldImage, 0, 0, 0, 0, $w, $h, $width, $height ); } _ckdir($saveas); @ImageJpeg($NewThumb,$saveas,$quality); @ImageDestroy($NewThumb); @ImageDestroy($OldImage); } return $r; }

« previous php.notes (#170952) next »