Foros del Web » Programando para Internet » PHP »

Redimensionar imagen

Estas en el tema de Redimensionar imagen en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 01/07/2017, 18:26
Avatar de julia2021  
Fecha de Ingreso: diciembre-2014
Ubicación: Mexico
Mensajes: 152
Antigüedad: 9 años, 3 meses
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
  #2 (permalink)  
Antiguo 02/07/2017, 13:40
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Redimensionar imagen

Ve que tal:

Código PHP:
Ver original
  1. <?php
  2.  
  3. //--Config--//
  4.  
  5. $dimg = "imagen.jpg"; //Dir imagen
  6. $dnew = "carpeta/nueva.jpg"; //New name/dir
  7. $x = 700; //Inicio recorte eje x
  8. $y = 700; //Inicio recorte eje y
  9. $w = 1200; //Ancho nueva imagen
  10. $h = 1200; //Alto nueva imagen
  11. $sw = 700; //Ancho redimension
  12. $sh = 700; //Alto redimension
  13. $q = 100; //Calidad
  14.  
  15. //--End Config--//
  16.  
  17. $img = imagecreatefromjpeg($dimg);
  18. $nimg = imagecreatetruecolor($w, $h);
  19. imagecopy($nimg, $img, 0, 0, $x, $y, $w, $h);
  20. $escale = imagescale($nimg, $sw, $sh);
  21.  
  22. imagejpeg($escale,$dnew,$q);  
  23. imagedestroy($nimg);
  24.  
  25. ?>

Última edición por alvaro_trewhela; 02/07/2017 a las 14:16

Etiquetas: foto, recortar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:20.