Foros del Web » Programando para Internet » PHP »

Que el visitante suba imagenes y las grabe en el servidor a un tamaño especifico

Estas en el tema de Que el visitante suba imagenes y las grabe en el servidor a un tamaño especifico en el foro de PHP en Foros del Web. Hola todos, Estoy trabajando un website donde los visitantes pueden subir imagenes para una galeria, pueden subir N cantidad de imagenes desde un formulario. Todo ...
  #1 (permalink)  
Antiguo 22/02/2006, 23:01
Avatar de ruxee  
Fecha de Ingreso: agosto-2002
Mensajes: 127
Antigüedad: 15 años, 3 meses
Puntos: 7
Que el visitante suba imagenes y las grabe en el servidor a un tamaño especifico

Hola todos,

Estoy trabajando un website donde los visitantes pueden subir imagenes para una galeria, pueden subir N cantidad de imagenes desde un formulario. Todo me va bien, pero quisiera que cuando haga el upload no las grabe en su tamaño original sino a menor tamaño respetando su propiedades y proporciones. Por ejemplo:
  • El visitante subira 3 fotos
  • Con base a esto me genera un formulario con 3 campos tipo file donde ingresara el archivo
  • Un ciclo va subiendo foto por foto pero:
  • Luego una foto que tiene de ancho 1280px debe grabarla en el servidor a 350x

Todo lo hace excepto grabar las imagenes mas pequeñas, ya revise todo el foro buscando soluciones y no logro adaptar ninguna a mi necesidad.

Alguien sabe como?
  #2 (permalink)  
Antiguo 22/02/2006, 23:53
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 12 años, 5 meses
Puntos: 2
http://ar.php.net/manual/es/ref.image.php

Lee... ahí tienes info para hacer todo lo que necesitas y aun más.

Suerte.
  #3 (permalink)  
Antiguo 23/02/2006, 12:14
Avatar de ruxee  
Fecha de Ingreso: agosto-2002
Mensajes: 127
Antigüedad: 15 años, 3 meses
Puntos: 7
Ya me funciona!!!

Gracias tocayo,

Crei que alguien ya lo tenia hecho, pero bueno el que no lo hace por si mismo no aprende. Basicamente el visitante en linea sube sus fotos al tamaño que sea y lo graba con el tamaño que deseo al servidor.

ASi que si a alguien le sirve el codigo ahi se los dejo.

Código PHP:
<?php
list($ancho,$alto,$tipo,$atri)= getimagesize($src_imagen);
$res_img=$src_imagen;
echo 
"<br>ancho: ".$ancho;
echo 
"<br>alto: ".$alto;
echo 
"<br>tipo: ".$tipo;
echo 
"<br>atributos: ".$atri;
echo 
"<br>destino: ".$res_img."<br>";
switch (
$tipo) {
case 
1//GIFs
    
$dst_imagen= @imagecreate(350,263);                                            //creo la imagen vacia con el tamaño que deseo en blanco
    
$tmp_imagen= @imagecreatefromgif($src_imagen);                                //a partir del origen cargo una temporal para enviarla cambiada segun el tamanio
    
@imagecopyresized($dst_imagen,$tmp_imagen,0,0,0,0,350,263,$ancho,$alto);     // tgransfiero la imagen temporal al archivo creado
    
@imagegif($dst_imagen,$res_img);                                             //grabado en disco
    
@imagedestroy($dst_imagen);
    @
imagedestroy($tmp_imagen);
    break;
    break;
case 
2:    //JPGs
    
$dst_imagen= @imagecreate(350,263);                                            //creo la imagen vacia con el tamaño que deseo en blanco
    
$tmp_imagen= @imagecreatefromjpeg($src_imagen);                                //a partir del origen cargo una temporal para enviarla cambiada segun el tamanio
    
@imagecopyresized($dst_imagen,$tmp_imagen,0,0,0,0,350,263,$ancho,$alto);     // tgransfiero la imagen temporal al archivo creado
    
@imagejpeg($dst_imagen,$res_img,100);                                         //grabado en disco
    
@imagedestroy($dst_imagen);
    @
imagedestroy($tmp_imagen);
    break;
}
?>
La variable $src_imagen viene de un $HTTP_POST_FILES['objetoarchivo']['nombrearchivo'] e incluye el path completo. Este archivo lo llamo con un include por lo que la variable $src_imagen debe recibir este valor para que trabaje.

Es mi primer ensayo asi que si alguien hace uno mas agil, creo sera bien recibido.

Última edición por ruxee; 23/02/2006 a las 12:16 Razón: el titulo no esta bien
  #4 (permalink)  
Antiguo 23/02/2006, 13:20
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 12 años, 5 meses
Puntos: 2
Cita:
Iniciado por ruxee
Crei que alguien ya lo tenia hecho
De seguro que muchos ya lo tienen hecho.

Cita:
Iniciado por ruxee
pero bueno el que no lo hace por si mismo no aprende
Por esto mismo no te dí ningún link directo a algún código hecho.

De seguro que tu código le servirá a alguien más.

Cita:
Iniciado por ruxee
Es mi primer ensayo asi que si alguien hace uno mas agil, creo sera bien recibido.
Este sería un thread interesante si se abriera, mostrar distintos código y fijarse cual es más flexible o más rápido.

Saludos y suerte.
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:12.