También estoy en busca de recortar imagenes, esta es la primer version del Script que estoy haciendo, te Explico:
Código PHP:
//obtengo los datos de la imagen de prueba
list($ancho, $alto, $tipo, $atributos) = getimagesize('img.jpg');
//Creo una ventana o mascara, es la parte que se mostrara de la imagen original.
//en este caso la mascara sera menor en un 20% a la original,
//para ello recortare las orillas en 20%
$porcentaje=0.20;// si aumentas este número, será más la parte que recortes.
echo $ventanaAncho=$ancho-($ancho*$porcentaje);
echo "<br />";
echo $ventanaAlto=$alto-($alto*$porcentaje);
echo "<br />";
echo "<br />";
//↑ Son el tamaño de la ventana, intenta también con números fijos.
// $ventanaAncho=400; // por ejemplo
// $ventanaAncho=150; // por ejemplo
//muestro los atributos para ver el ancho y alto de la imagen de prueba
echo $atributos;
echo "<br />";
//Estas son las coordenadas donde comenzara la ventana,
//me ayuda a centrar la ventana.
echo $Ax=($ancho-$ventanaAncho)/2; echo "<br />";
echo $Ay=($alto-$ventanaAlto)/2;
echo "<br />";
//creo "copia" de la imagen de prueba.
$original = imagecreatefromjpeg('img.jpg');
//creo la imagen donde voy a montar la ventana o imagen recortada.
$thumb = imagecreatetruecolor($ventanaAncho,$ventanaAlto);
//Creo la imagen.
imagecopyresampled($thumb,$original, 0 , 0 ,$Ax ,$Ay ,$ventanaAncho,$ventanaAlto,$ventanaAncho,$ventanaAlto);
$laimagen=imagejpeg($thumb,'imgp.jpg',90);
//imagecopyresampled($dst_image, $src_image , $dst_x , $dst_y , $src_x , $src_y , $dst_w , $dst_h , $src_w , $src_h )
/*
tomará un área rectangular de src_image ('img.jpg') en este caso.
de ancho src_w
y alto src_h
en la posición (src_x,src_y) [Ax Y Ay] en este caso.
y la coloca en un área rectangular de dst_image
de ancho dst_w
y alto dst_h
en la posición (dst_x,dst_y).
*/
Espero se entienda y mejor aún, te sirva.
Suerte!!!