IMPORTANT!

Snipt is going open source. We've toyed with this idea for quite a while, and have finally decided it's the right way to move forward.

A few things:
  • The entire Snipt source code will be released on GitHub under the 3-clause BSD License on Friday, September 10th.
  • While we'd like to think we're perfect, we realize we're only human. By open sourcing the software that runs this website, certain bugs or security flaws may be discovered that could compromise the privacy of your snipts.
  • Only the Lion Burger team will be able to push commits to the Snipt.net site. Contributors should send a pull request to add new features or submit patches.
  • By using this site, you agree not to be too angry or take any legal action against Lion Burger should this whole thing go up in flames some day.
  • Follow us on Twitter for updates.
I agree, close this message
Sign up to create your own snipts, or login.

Latest 100 public snipts » aspect ratio The latest public aspect ratio snipts.

showing 1-1 of 1 snipts for aspect ratio
  • Proportional image resizing
    function resize_image( $file, $width = 0, $height = 0, $proportional = false, $output = 'file', $delete_original = true )
    {
    	if ( $height <= 0 && $width <= 0 ) return false;
    
    	$info = getimagesize($file);
    	$image = '';
    
    	$final_width = 0;
    	$final_height = 0;
    	list($width_old, $height_old) = $info;
    
       if ($proportional) {
    		   if ($width == 0) $factor = $height/$height_old;
    		   elseif ($height == 0) $factor = $width/$width_old;
    		   else $factor = min ( $width / $width_old, $height / $height_old);
    
    		   $final_width = round ($width_old * $factor);
    		   $final_height = round ($height_old * $factor);
       } else {
    		   $final_width = ( $width <= 0 ) ? $width_old : $width;
    		   $final_height = ( $height <= 0 ) ? $height_old : $height;
       }
    
       switch ($info[2]) {
    		   case IMAGETYPE_GIF:
    				   $image = imagecreatefromgif($file);
    		   break;
    		   case IMAGETYPE_JPEG:
    				   $image = imagecreatefromjpeg($file);
    		   break;
    		   case IMAGETYPE_PNG:
    				   $image = imagecreatefrompng($file);
    		   break;
    		   default:
    				   return false;
       }
    
       $image_resized = imagecreatetruecolor( $final_width, $final_height );
    
       if(($info[2] == IMAGETYPE_GIF) || ($info[2] == IMAGETYPE_PNG)) {
    		   $trnprt_indx = imagecolortransparent($image);
    
    		   // If we have a specific transparent color
    		   if($trnprt_indx >= 0) {
    
    				   // Get the original image's transparent color's RGB values
    				   $trnprt_color    = imagecolorsforindex($image, $trnprt_indx);
    
    				   // Allocate the same color in the new image resource
    				   $trnprt_indx    = imagecolorallocate($image_resized, $trnprt_color['red'], $trnprt_color['green'], $trnprt_color['blue']);
    
    				   // Completely fill the background of the new image with allocated color.
    				   imagefill($image_resized, 0, 0, $trnprt_indx);
    
    				   // Set the background color for new image to transparent
    				   imagecolortransparent($image_resized, $trnprt_indx);
    
    
    		   }
    		   // Always make a transparent background color for PNGs that don't have one allocated already
    		   elseif ($info[2] == IMAGETYPE_PNG) {
    
    				   // Turn off transparency blending (temporarily)
    				   imagealphablending($image_resized, false);
    
    				   // Create a new transparent color for image
    				   $color = imagecolorallocatealpha($image_resized, 0, 0, 0, 127);
    
    				   // Completely fill the background of the new image with allocated color.
    				   imagefill($image_resized, 0, 0, $color);
    
    				   // Restore transparency blending
    				   imagesavealpha($image_resized, true);
    		   }
       }
    
       imagecopyresampled($image_resized, $image, 0, 0, 0, 0, $final_width, $final_height, $width_old, $height_old);
    
       if($delete_original) @unlink($file);
    
       switch (strtolower($output)) {
    		   case 'browser':
    				   $mime = image_type_to_mime_type($info[2]);
    				   header("Content-type: $mime");
    				   $output = NULL;
    		   break;
    		   case 'file':
    				   $output = $file;
    		   break;
    		   case 'return':
    				   return $image_resized;
    		   break;
    		   default:
    		   break;
       }
    
       switch ($info[2]) {
    		   case IMAGETYPE_GIF:
    				   imagegif($image_resized, $output);
    		   break;
    		   case IMAGETYPE_JPEG:
    				   imagejpeg($image_resized, $output);
    		   break;
    		   case IMAGETYPE_PNG:
    				   imagepng($image_resized, $output);
    		   break;
    		   default:
    				   return false;
       }
    
       return true;
    }
    

    copy | embed

    0 comments - tagged in  posted by evansims on Dec 20, 2008 at 7:39 p.m. EST
Sign up to create your own snipts, or login.