Foros del Web » Programando para Internet » PHP »

Redimensionar imagenes a 2 medidas

Estas en el tema de Redimensionar imagenes a 2 medidas en el foro de PHP en Foros del Web. Hola, tengo un formulario mediante el cual subo varias imagenes, luego se redimensionan y se guardan en una carpeta: Código HTML: <form enctype= "multipart/form-data" action= ...
  #1 (permalink)  
Antiguo 15/07/2009, 18:38
Avatar de FantasmaFito  
Fecha de Ingreso: junio-2007
Ubicación: Buenos Aires, Argentina
Mensajes: 118
Antigüedad: 16 años, 10 meses
Puntos: 0
Redimensionar imagenes a 2 medidas

Hola, tengo un formulario mediante el cual subo varias imagenes, luego se redimensionan y se guardan en una carpeta:

Código HTML:
<form enctype="multipart/form-data" action="imagenes.php" method="post" name="algo">
    <input type="hidden" name="datos" />
    Archivo 1: <input type="file" name="archivo[]" />
	Archivo 2: <input type="file" name="archivo[]" />
	Archivo 3: <input type="file" name="archivo[]" />
	Archivo 4: <input type="file" name="archivo[]" />
    <input type="submit" value="enviar" />
</form> 
y en el php:
Código PHP:
if(isset($_POST['datos'])){
    
$arrayImgs=$_FILES['archivo']['tmp_name'];
    
$cantidadImgs=count($arrayImgs);
    for(
$n=0$n<$cantidadImgs$n++){
        
$formato=$arrayImgs[$n];
        
$datos getimagesize($formato);
        if(
$datos[2]==1){$imagen = @imagecreatefromgif($formato);}
        if(
$datos[2]==2){$imagen = @imagecreatefromjpeg($formato);}
        if(
$datos[2]==3){$imagen = @imagecreatefrompng($formato);}
        
unlink($arrayImgs[$n]);
        
$width  imagesx($imagen);
        
$height imagesy($imagen);
        
$nueva_anchura  130;
        
$nueva_altura 130;
        if (
function_exists("imagecreatetruecolor")){
               
$calidad imagecreatetruecolor($nueva_anchura$nueva_altura);
        }else{
$calidad imagecreate($nueva_anchura$nueva_altura);}
        
imagecopyresized($calidad$imagen0000$nueva_anchura$nueva_altura$width$height);
        
imagejpeg($calidad$arrayImgs[$n], 100);
           
imagedestroy($imagen);
        
move_uploaded_file($arrayImgs[$n],"prueba/".($n+1).".jpg");
    }

Anda bien, lo que necesitaría hacer es que la imagen se redimensione a dos medidas (una grande y una chica) y que se guarde en las carpetas correspondientes. El problema es que si repito el código para la segunda redimension me tira error, creo que una vez que redimensiona y guarda la imagen la borra del temporal

Alguien podría orientarme un poco sobre como hacerlo?

Gracias!!
  #2 (permalink)  
Antiguo 15/07/2009, 18:50
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 9 meses
Puntos: 27
Respuesta: Redimensionar imagenes a 2 medidas

Proba con esta clase, que es muy de implementar.
Espero que te sea util

blog.unijimpe.net/generar-thumbnails-con-php/
  #3 (permalink)  
Antiguo 16/07/2009, 11:22
Avatar de FantasmaFito  
Fecha de Ingreso: junio-2007
Ubicación: Buenos Aires, Argentina
Mensajes: 118
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Redimensionar imagenes a 2 medidas

Hola, gracias por la clase que me pasastes, aunque no me funcionó
De todos modos, lo que quisiera e simplementar el código que yo deje, solo que no se como hacer para poder redimensionar la misma imagen a dos tamaños.
Alguien tendría alguna sugerencia?

Gracias!!
  #4 (permalink)  
Antiguo 16/07/2009, 15:00
Avatar de FantasmaFito  
Fecha de Ingreso: junio-2007
Ubicación: Buenos Aires, Argentina
Mensajes: 118
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Redimensionar imagenes a 2 medidas

Bueno, lo pude lograr!!! Para los que no pudieron dormir pensando en este problema (veo que fueron muchos ) les cuento: solamente reemplace el move_uploaded_file por el copy y repeti el codigo de redimension, entonces me quedo:

Código PHP:
//Redimensionar imagen    grande
                                    
$formato=$arrayImgs[$n];
                                    
$datos getimagesize($formato);
                                    if(
$datos[2]==1){$imagen = @imagecreatefromgif($formato);}
                                    if(
$datos[2]==2){$imagen = @imagecreatefromjpeg($formato);}
                                    if(
$datos[2]==3){$imagen = @imagecreatefrompng($formato);}
                                    @
unlink($arrayImgs[$n]);
                                    @
$width  imagesx($imagen);
                                    @
$height imagesy($imagen);
                                    @
$nueva_altura 300;
                                    @
$nueva_anchura round(($nueva_altura $width) / $height);
                                    if (
function_exists("imagecreatetruecolor")){
                                        @
$calidad imagecreatetruecolor($nueva_anchura$nueva_altura);
                                    }else{
$calidad imagecreate($nueva_anchura$nueva_altura);}
                                    @
imagecopyresized($calidad$imagen0000$nueva_anchura$nueva_altura$width$height);
                                    @
imagejpeg($calidad$arrayImgs[$n], 100);
                                    @
imagedestroy($imagen);
            
copy($arrayImgs[$n],"prueba/".($n+11).".jpg");
//Redimensionar imagen    chica
                                    
$formato=$arrayImgs[$n];
                                    
$datos getimagesize($formato);
                                    if(
$datos[2]==1){$imagen = @imagecreatefromgif($formato);}
                                    if(
$datos[2]==2){$imagen = @imagecreatefromjpeg($formato);}
                                    if(
$datos[2]==3){$imagen = @imagecreatefrompng($formato);}
                                    @
unlink($arrayImgs[$n]);
                                    @
$width  imagesx($imagen);
                                    @
$height imagesy($imagen);
                                    @
$nueva_altura 70;
                                    @
$nueva_anchura round(($nueva_altura $width) / $height);
                                    if (
function_exists("imagecreatetruecolor")){
                                        @
$calidad imagecreatetruecolor($nueva_anchura$nueva_altura);
                                    }else{
$calidad imagecreate($nueva_anchura$nueva_altura);}
                                    @
imagecopyresized($calidad$imagen0000$nueva_anchura$nueva_altura$width$height);
                                    @
imagejpeg($calidad$arrayImgs[$n], 100);
                                    @
imagedestroy($imagen);
                
copy($arrayImgs[$n],"prueba/".($n+1).".jpg"); 
Saludos!!
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 11:45.