note 61169 added to function.imagecopyresampled

From: Date: Fri, 27 Jan 2006 08:40:46 +0000
Subject: note 61169 added to function.imagecopyresampled
Groups: php.notes 
Request: Send a blank email to php-notes+get-102532@lists.php.net to get a copy of this message
<?php // The file $filein = ''; // File in $fileout = 'ttt.gif'; // Fileout - optional $imagethumbsize_w = 100; // thumbnail size (area cropped in middle of image) $imagethumbsize_h = 75; // thumbnail size (area cropped in middle of image) resize_then_crop( $filein,$fileout,$imagethumbsize_w, $imagethumbsize_h,/*rgb*/"255","255","255"); //Author Alan Reddan Silverarm Solutions //Date 27/01/2005 //Function that works well with images. //It takes the image and reduces its size to best fit. i.e If you have an image //that is 200 X 100 and you want a thumbnail of 75 X 50, //it first resizes the image to 100 X 50 //and then takes out a portion 75 X 50 from then center of the input image. //So loads of image information is retained. //The corollary also holds if your input image is 100 X 200 //it first resizes image to 75 X 150 and then takes out a //portion 75 X 75 from the centre // The advantage here is that function decides on whether //resize is by width or height itself. //it also decides whether to use the height or the width as the base start point //in the case that athumbnail is rectangular function resize_then_crop( $filein,$fileout, $imagethumbsize_w,$imagethumbsize_h,$red,$green,$blue) { // Get new dimensions list($width, $height) = getimagesize($filein); $new_width = $width * $percent; $new_height = $height * $percent; if(preg_match("/.jpg/i", "$filein")) { $format = 'image/jpeg'; } if (preg_match("/.gif/i", "$filein")) { $format = 'image/gif'; } if(preg_match("/.png/i", "$filein")) { $format = 'image/png'; } switch($format) { case 'image/jpeg': $image = imagecreatefromjpeg($filein); break; case 'image/gif'; $image = imagecreatefromgif($filein); break; case 'image/png': $image = imagecreatefrompng($filein); break; } $width = $imagethumbsize_w ; $height = $imagethumbsize_h ; list($width_orig, $height_orig) = getimagesize($filein); if ($width_orig < $height_orig) { $height = ($imagethumbsize_w / $width_orig) * $height_orig; } else { $width = ($imagethumbsize_h / $height_orig) * $width_orig; } if ($width < $imagethumbsize_w) //if the width is smaller than supplied thumbnail size { $width = $imagethumbsize_w; $height = ($imagethumbsize_w/ $width_orig) * $height_orig;; } if ($height < $imagethumbsize_h) //if the height is smaller than supplied thumbnail size { $height = $imagethumbsize_h; $width = ($imagethumbsize_h / $height_orig) * $width_orig; } $thumb = imagecreatetruecolor($width , $height); $bgcolor = imagecolorallocate($thumb, $red, $green, $blue); ImageFilledRectangle($thumb, 0, 0, $width, $height, $bgcolor); imagealphablending($thumb, true); imagecopyresampled($thumb, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); $thumb2 = imagecreatetruecolor($imagethumbsize_w , $imagethumbsize_h); // true color for best quality $bgcolor = imagecolorallocate($thumb2, $red, $green, $blue); ImageFilledRectangle($thumb2, 0, 0, $imagethumbsize_w , $imagethumbsize_h , $white); imagealphablending($thumb2, true); $w1 =($width/2) - ($imagethumbsize_w/2); $h1 = ($height/2) - ($imagethumbsize_h/2); imagecopyresampled($thumb2, $thumb, 0,0, $w1, $h1, $imagethumbsize_w , $imagethumbsize_h ,$imagethumbsize_w, $imagethumbsize_h); // Output //header('Content-type: image/gif'); //imagegif($thumb); //output to browser first image when testing if ($fileout !="")imagegif($thumb2, $fileout); //write to file header('Content-type: image/gif'); imagegif($thumb2); //output to browser } ?> ---- Server IP: 193.95.141.37 Probable Submitter: 62.77.173.3 ---- Manual Page -- http://www.php.net/manual/en/function.imagecopyresampled.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+61169 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+61169&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+61169&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+61169&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+61169&report=yes&reason=useless Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+61169&report=yes&reason=non-english Delete: already in docs -- http://master.php.net/manage/user-notes.php?action=delete+61169&report=yes&reason=already+in+docs Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+61169&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+61169&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#102532) next »