Foros del Web » Programando para Internet » PHP »

Duda instruccion imagecopyresampled

Estas en el tema de Duda instruccion imagecopyresampled en el foro de PHP en Foros del Web. Buenas noches Chicos, estoy leyendo el manual de php para ver si puedo redimensionar unas imgenes. Este ejemplo es del manual de php que estuve ...
  #1 (permalink)  
Antiguo 15/08/2012, 20:50
 
Fecha de Ingreso: julio-2012
Ubicación: Colombia
Mensajes: 53
Antigüedad: 11 años, 9 meses
Puntos: 0
Duda instruccion imagecopyresampled

Buenas noches

Chicos, estoy leyendo el manual de php para ver si puedo redimensionar unas imgenes.

Este ejemplo es del manual de php que estuve leyendo y con el cual estoy realizando las pruebas.

Código HTML:
Ver original
  1. <?php
  2. // El archivo
  3. $nombre_archivo = 'prueba.jpg';
  4. $porcentaje = 0.5;
  5.  
  6. // Tipo de contenido
  7. header('Content-Type: image/jpeg');
  8.  
  9. // Obtener nuevas dimensiones
  10. list($ancho, $alto) = getimagesize($nombre_archivo);
  11. $nuevo_ancho = $ancho * $porcentaje;
  12. $nuevo_alto = $alto * $porcentaje;
  13.  
  14. // Redimensionar
  15. $imagen_p = imagecreatetruecolor($nuevo_ancho, $nuevo_alto);
  16. $imagen = imagecreatefromjpeg($nombre_archivo);
  17. imagecopyresampled($imagen_p, $imagen, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto);
  18.  
  19. // Imprimir
  20. imagejpeg($imagen_p, null, 100);
  21. ?>

Hay un par de cosas del ejemplo que no entiendo.

1. ¿Se puede hacer esto con la linea 17 del ejemplo?

Código HTML:
Ver original
  1. $nueva_imagen = imagecopyresampled($imagen_p, $imagen, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto);

Lo he intentado pero no me funciona.


2. ¿El script crea un archivo nuevo con la nuevas dimesiones o reescribe el original? Lo pregunto por que no veo que me cree otro archivo y el archivo original queda igual.

Disculpen mi ignorancia

Gracias

Helena
  #2 (permalink)  
Antiguo 15/08/2012, 20:54
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Duda instruccion imagecopyresampled

Si leiste bien el manual, verás que imagecopyresampled() sólo crea una imagen temporal (en memoria) y, para guardarla, requieres imagejpeg(), imagegif(), etc., de acuerdo al formato deseado.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 15/08/2012, 21:22
 
Fecha de Ingreso: julio-2012
Ubicación: Colombia
Mensajes: 53
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Duda instruccion imagecopyresampled

Triby, gracias por tu tiempo

Pero entonces

¿imagejpeg o imagegif(), con que nombre guarda el archivo?

¿Puedo hacer lo siguiente?

$nueva_imagen = imagejpeg($imagen_p, null, 100);

Gracias

Helena
  #4 (permalink)  
Antiguo 15/08/2012, 22:07
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Duda instruccion imagecopyresampled

No, todavía necesitas el imagecopyresampled() tal como lo tienes y, como estás enviando cabeceras de que se trata de una imagen, entonces sólo necesitas:

imagejpeg($nueva_imagen);

Sabiendo que $nueva_imagen es la que hiciste de menor tamaño.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 16/08/2012, 20:28
 
Fecha de Ingreso: julio-2012
Ubicación: Colombia
Mensajes: 53
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Duda instruccion imagecopyresampled

Triby, hice lo que tu me sugeriste, pero al correr el script no pasa nada no me crea un a nueva archivo con las nuevas dimensiones. ¿Se supone que el script me crea otro archivo con las nuevas dimensiones?

Código HTML:
Ver original
  1. <?php
  2. // El archivo
  3. $nombre_archivo = 'prueba.jpg';
  4. $porcentaje = 0.5;
  5.  
  6. // Tipo de contenido
  7. header('Content-Type: image/jpeg');
  8.  
  9. // Obtener nuevas dimensiones
  10. list($ancho, $alto) = getimagesize($nombre_archivo);
  11. $nuevo_ancho = $ancho * $porcentaje;
  12. $nuevo_alto = $alto * $porcentaje;
  13.  
  14. // Redimensionar
  15. $imagen_p = imagecreatetruecolor($nuevo_ancho, $nuevo_alto);
  16. $imagen = imagecreatefromjpeg($nombre_archivo);
  17. $nueva_imagen = imagecopyresampled($imagen_p, $imagen, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto);
  18.  
  19. // Imprimir
  20. imagejpeg($nueva_imagen, null, 100);
  21. ?>
  #6 (permalink)  
Antiguo 17/08/2012, 17:28
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Duda instruccion imagecopyresampled

Así como tienes tu script, supongamos que se llama "muestra_imagen.php" debes tener un HTML con una etiqueta de imagen:

<img src="muestra_imagen.php" />

O bien, ingresar directamente muestra_imagen.php en el navegador.

Si tratas de mostrar directamente la imagen en otra salida HTML, no funcionará, porque el script envía sus propios encabezados especificando que sólo mostrará una imagen jpg y no lo puedes combinar con HTML, ni textos, ni otras imágenes.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: imagecopyresampled, instruccion
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 08:16.