Nicholas Cheek

LITTLE ROCK WEB DEVELOPER

Creates a thumbnail from an existing image. $filename is the original filename, while $tmpname is the actual filesystem name (for example, the temporary filename used in a PHP upload). Returns an image resource which you can then output to the browser, or save to a file using imagejpg(), imagepng(), etc.

function resize_image($filename, $tmpname, $xmax, $ymax)
{
	$ext = explode(".", $filename);
	$ext = $ext[count($ext)-1];

	if($ext == "jpg" || $ext == "jpeg")
		$im = imagecreatefromjpeg($tmpname);
	elseif($ext == "png")
		$im = imagecreatefrompng($tmpname);
	elseif($ext == "gif")
		$im = imagecreatefromgif($tmpname);
	
	$x = imagesx($im);
	$y = imagesy($im);
	
	if($x <= $xmax && $y <= $ymax)
		return $im;

	if($x >= $y) {
		$newx = $xmax;
		$newy = $newx * $y / $x;
	}
	else {
		$newy = $ymax;
		$newx = $x / $y * $newy;
	}
	
	$im2 = imagecreatetruecolor($newx, $newy);
	imagecopyresized($im2, $im, 0, 0, 0, 0, floor($newx), floor($newy), $x, $y);
	return $im2; 
}

LITTLE ROCK WEB DEVELOPER

Living the dream.

nick@nicholascheek.com