Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/07/2017, 18:26
Avatar de julia2021
julia2021
 
Fecha de Ingreso: diciembre-2014
Ubicación: Mexico
Mensajes: 152
Antigüedad: 10 años
Puntos: 11
Sonrisa Redimensionar imagen

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_reajustada255255255);
imagefill($img_reajustada00$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_recortadaaa0000$src_w$src_h$ancho_original$alto_original); 

Última edición por julia2021; 01/07/2017 a las 19:47