Hola mis amigos, les cuento que tengo la foto cuerpo entero (de pies a cabeza) de cada uno de los alumnos de una escuela, pero como me interesa es el rostro de cada uno de ellos, me tocaría usar un editor de imagenes para recortarlas, pero cuando se trata de toooodos los alumnos de la escuela, prefiero que PHP se encargue de ello.
Ya he podido
RECORTAR una imagen, es decir, si dada una imagen de 2048 de alto x 1500 de ancho, he podido generar una imagen de 1500x1500 px, cuyo contenido son los 200px desde la esquina superior izquierda, es decir, he logrado capturar el rostro de cada alumno, aquí el siguiente código:
Código PHP:
$img_original=imagecreatefromjpeg($imagen);
// Recortamos la imagen
$src_x = '0'; // comienza x
$src_y = '0'; // comienza y
$src_w = '200'; // nuevo ancho
$src_h = '200'; // nuevo alto
$dst_x = '0'; // termina x
$dst_y = '0'; // termina y
//CREO UNA IMAGEN EN COLOR REAL CON LA NUEVAS DIMENSIONES
$img_reajustada = imagecreatetruecolor($src_w, $src_h);
$white = imagecolorallocate($img_reajustada, 255, 255, 255);
imagefill($img_reajustada, 0, 0, $white);
imagecopy($img_reajustada, $img_original, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h);
//Guardo la imagen recortada en el servidor
$nombre_img_ext=$ruta.$mail.$extension;
$nombre_img=$ruta.$mail;
imagejpeg($img_reajustada,$nombre_img_ext,100);
HASTA ESTE MOMENTO TODO BIEN, he logrado capturar el rostro de cada alumno, pero el archivo es muy grande, es decir, la imagen resultante tiene un tamaño de 1536x1536 px y no sé como disminuir este tamaño??
Habia pensado usar
imagecopyresampled pero no sé como pasarle el resultado de
imagecopy (ver código) o si existe otra forma de hacerlo para que la imagen final sea de 200px x 200px
Tambien he pensado en tomar el resultado de
imagecopy y pasarselo a
imagecopyresampled pero no me funciona, sería algo como esto:
Código PHP:
$imagen_ya_recortadaaa = imagecopy($img_reajustada, $img_original, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h);
imagecopyresampled($img_reajustada, $imagen_ya_recortadaaa, 0, 0, 0, 0, $src_w, $src_h, $ancho_original, $alto_original);