note 98959 added to function.imagecopyresampled

From: Date: Sun, 18 Jul 2010 11:46:44 +0000
Subject: note 98959 added to function.imagecopyresampled
Groups: php.notes 
Request: Send a blank email to php-notes+get-170951@lists.php.net to get a copy of this message
"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; } ---- Server IP: 64.71.164.2 Probable Submitter: 82.137.200.5 (proxied: 91.144.60.104) ---- Manual Page -- http://www.php.net/manual/en/function.imagecopyresampled.php Edit -- https://master.php.net/note/edit/98959 Del: integrated -- https://master.php.net/note/delete/98959/integrated Del: useless -- https://master.php.net/note/delete/98959/useless Del: bad code -- https://master.php.net/note/delete/98959/bad+code Del: spam -- https://master.php.net/note/delete/98959/spam Del: non-english -- https://master.php.net/note/delete/98959/non-english Del: in docs -- https://master.php.net/note/delete/98959/in+docs Del: other reasons-- https://master.php.net/note/delete/98959 Reject -- https://master.php.net/note/reject/98959 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#170951) next »