you are in: codestackercodes [RSS] → tag: resize [RSS]

resize image Delicious

show/hide lines
   1  <?
   2  ////////////////////////////////////////////////////////////////////////////////////
   3  // generate a croped-image from a picture
   4  // source: http://mediumexposure.com/techblog/smart-image-resizing-while-preserving-transparency-php-and-gd-library
   5  // resizes a image, without crop
   6  // usage: resizeImage("test/6.jpg", "540", "720", true, "test/output.jpg")
   7  ////////////////////////////////////////////////////////////////////////////////////
   8  
   9  function resizeImage( $file, $width = 0, $height = 0, $proportional = false, $output = 'file') {
  10  	$info = getimagesize($file);
  11  	$image = '';
  12  	$final_width = 0;
  13  	$final_height = 0;
  14  	list($width_old, $height_old) = $info;
  15  	if ($proportional) {
  16  		if ($width == 0) $factor = $height/$height_old;
  17  		elseif ($height == 0) $factor = $width/$width_old;
  18  		else $factor = min ( $width / $width_old, $height / $height_old);  
  19  		$final_width = round ($width_old * $factor);
  20  		$final_height = round ($height_old * $factor);
  21  	}
  22  	else {
  23  		$final_width = ( $width <= 0 ) ? $width_old : $width;
  24  		$final_height = ( $height <= 0 ) ? $height_old : $height;
  25  	}
  26  	switch ( $info[2] ) {
  27  		case IMAGETYPE_GIF:
  28  			$image = imagecreatefromgif($file);
  29  		break;
  30  		case IMAGETYPE_JPEG:
  31  			$image = imagecreatefromjpeg($file);
  32  		break;
  33  		case IMAGETYPE_PNG:
  34  			$image = imagecreatefrompng($file);
  35  		break;
  36  		default:
  37  			return false;
  38  	}
  39          
  40  	$image_resized = imagecreatetruecolor( $final_width, $final_height );
  41  			
  42  	if ( ($info[2] == IMAGETYPE_GIF) || ($info[2] == IMAGETYPE_PNG) ) {
  43  		$trnprt_indx = imagecolortransparent($image);
  44  
  45  		if ($trnprt_indx >= 0) {
  46  			$trnprt_color    = imagecolorsforindex($image, $trnprt_indx);
  47  			$trnprt_indx    = imagecolorallocate($image_resized, $trnprt_color['red'], $trnprt_color['green'], $trnprt_color['blue']);
  48  			imagefill($image_resized, 0, 0, $trnprt_indx);
  49  			imagecolortransparent($image_resized, $trnprt_indx);
  50  		} 
  51  		elseif ($info[2] == IMAGETYPE_PNG) {
  52  			imagealphablending($image_resized, false);
  53  			$color = imagecolorallocatealpha($image_resized, 0, 0, 0, 127);
  54  			imagefill($image_resized, 0, 0, $color);
  55  			imagesavealpha($image_resized, true);
  56  		}
  57  	}
  58  	imagecopyresampled($image_resized, $image, 0, 0, 0, 0, $final_width, $final_height, $width_old, $height_old);    
  59          
  60  	switch ( strtolower($output) ) {
  61  		case 'browser':
  62  			$mime = image_type_to_mime_type($info[2]);
  63  			header("Content-type: $mime");
  64  			$output = NULL;
  65  		break;
  66  		case 'file':
  67  			$output = $file;
  68  		break;
  69  		case 'return':
  70  			return $image_resized;
  71  		break;
  72  		default:
  73  		break;
  74  	}
  75  	switch ( $info[2] ) {
  76  		case IMAGETYPE_GIF:
  77  			imagegif($image_resized, $output);
  78  		break;
  79  		case IMAGETYPE_JPEG:
  80  			imagejpeg($image_resized, $output);
  81  		break;
  82  		case IMAGETYPE_PNG:
  83  			imagepng($image_resized, $output);
  84  		break;
  85  		default:
  86  			return false;
  87  	}
  88  	return true;
  89  }
  90  ?>
created by anonymous — 05 July 2008 — get a short url — tags: gd php resize embed

resize image with crop Delicious

show/hide lines
   1  ////////////////////////////////////////////////////////////////////////////////////
   2  // generate a croped-image from a picture
   3  // source: http://www.seaton-online.com/forum/index.php?showtopic=545
   4  // usage: cropImage("300", "225", "test/5.jpg", "jpg", "test/output.jpg");
   5  ////////////////////////////////////////////////////////////////////////////////////
   6  
   7  function cropImage($nw, $nh, $source, $stype, $dest) {
   8           $size = getimagesize($source);
   9           $w = $size[0];
  10           $h = $size[1];
  11  
  12            switch($stype) {
  13                case 'gif':
  14                $simg = imagecreatefromgif($source);
  15                break;
  16                case 'jpg':
  17                $simg = imagecreatefromjpeg($source);
  18                break;
  19                case 'png':
  20                $simg = imagecreatefrompng($source);
  21                break;
  22            }
  23  
  24            $dimg = imagecreatetruecolor($nw, $nh);
  25            $wm = $w/$nw;
  26            $hm = $h/$nh;
  27            $h_height = $nh/2;
  28            $w_height = $nw/2;
  29  
  30            if($w> $h) {
  31                $adjusted_width = $w / $hm;
  32                $half_width = $adjusted_width / 2;
  33                $int_width = $half_width - $w_height;
  34                imagecopyresampled($dimg,$simg,-$int_width,0,0,0,$adjusted_width,$nh,$w,$h);
  35            } elseif(($w <$h) || ($w == $h)) {
  36                $adjusted_height = $h / $wm;
  37                $half_height = $adjusted_height / 2;
  38                $int_height = $half_height - $h_height;
  39                imagecopyresampled($dimg,$simg,0,-$int_height,0,0,$nw,$adjusted_height,$w,$h);
  40            } else {
  41                imagecopyresampled($dimg,$simg,0,0,0,0,$nw,$nh,$w,$h);
  42            }
  43  
  44            imagejpeg($dimg,$dest,80);
  45  }
created by anonymous — 05 July 2008 — get a short url — tags: gd php resize embed