Cropping photos

Hey,

I am using the following code to crop photos… But I would like to crop the from the center out aposed to from the top left corner… How can I do that?


	// Crop Thumbs
	$width = 70;
	$height = 70;
	$dimensions = getimagesize($images_dir."/tb_".$filename);
	$canvas = imagecreatetruecolor($width,$height);
	$piece = imagecreatefromjpeg($images_dir."/tb_".$filename);

	$newwidth = 70;
	$newheight = 70;
	$cropLeft = ($newwidth/ 2) - ($width/ 2);
	$cropHeight = ($newheight/ 2) - ($height/ 2);
	
	imagecopyresized($canvas, $piece, 0,0, $cropLeft, $cropHeight, $width, $height, $newwidth, $newheight);
	if (imagejpeg($canvas,$images_dir."/tb_".$filename,100)) {
	echo 'Image crop successful';
	} else {
	echo 'Image crop failed';
	}
	imagedestroy($canvas);
	imagedestroy($piece);

Thanks

For cropLeft and cropHeight I think you need to calculate the coordinates on the source image you want to crop (the top-left corner).

Something like this (untested):


$w = $dimensions[0]; // get width of original image
$h = $dimensions[1]; // get height of original image 

$cropLeft = ($w/2) - ($newwidth/2);
$cropHeight = ($h/2) - ($newheight/2);

Ahh yes I see now… Works a treat…

Thanks