Foros del Web » Programando para Internet » PHP »

como reducir la imagen al subirla

Estas en el tema de como reducir la imagen al subirla en el foro de PHP en Foros del Web. hola amigo he estado armando con codigo con ayuda de una compañero ya tenemos la parte de subida por medio de un formulario este nos ...
  #1 (permalink)  
Antiguo 14/08/2010, 09:44
 
Fecha de Ingreso: abril-2010
Mensajes: 182
Antigüedad: 14 años
Puntos: 8
Exclamación como reducir la imagen al subirla

hola amigo he estado armando con codigo con ayuda de una compañero ya tenemos la parte de subida por medio de un formulario este nos sube la imagen en los 3 formatos mas comunes jpeg,gif,png no lo sube a una carpeta /fotos , enviar la ruta ala bd y crear una miniatura y la guarda en /fotos/tn. lo q no hemos podido es reducir la imagen inicial a una medida de 600x400.
mire el codigo
Código PHP:
        <?  
$server
="localhost";              /* Nuestro server mysql:  */  
$database="xxxxxx";               /* Nuestra base de datos */  
$dbpass="xxxxxxxxxxx";               /*Nuestro password */  
$dbuser="xxxxxxxxxxxxxx";                 /* Nuestro user  */ 


//datos del arhivo  
$nombre_archivo $HTTP_POST_FILES["userfile"]["name"];  
$tipo_archivo $HTTP_POST_FILES["userfile"]["type"];  
$tamano_archivo $HTTP_POST_FILES["userfile"]["size"]; 
$id_afiliado $_POST["id_afiliado"];
$name $_POST["name"]; 
$precio $_POST["precio"];   
$descripcion $_POST["descripcion"];   

//compruebo si las características del archivo son las que deseo  

if (!((strpos($tipo_archivo"gif") || strpos($tipo_archivo"jpeg") || strpos($tipo_archivo"png")) && (    $tamano_archivo 10000000))) 
{  
    echo 
"La extension o el tamano de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 1 Mb maximo.</td></tr></table>"
?>
          <script language="JavaScript" type="text/javascript"> 
        setTimeout("url()",3000); 
        function url() 
        { 
        window.history.back(); 
        } 
            </script>
          <?     

else 
{  
    
$nom_img $id_afiliado.$nombre_archivo;  
    
     
    
$directorio 'fotos/'

    if (
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],$directorio "/" $nom_img)) 
    {  
        
$diaactualdate("d");  
        
$mesactualdate("m");  
        
$anoactualdate("Y"); 
        
$fecha$anoactual "," $mesactual "," $diaactual
         

// Simple Thumb Gen
// Por Alex para WebTaller.com
$directorio2 $directorio."tn/"

$nom_tmb $directorio2."tn_".$nom_img
$nom_img $nom_img
$nom_img2 $directorio.$nom_img




$archivo pathinfo($nom_img2); 

if (
$archivo['extension'] == "png") { 
$original imagecreatefrompng($nom_img2); 
}elseif (
$archivo['extension'] == "jpg") { 
$original imagecreatefromjpeg($nom_img2); 
}elseif (
$archivo['extension'] == "gif") { 
$original imagecreatefromgif($nom_img2); 


$thumb imagecreatetruecolor(150,150); // Lo haremos de un tamaño 150x150 

$ancho_nuevo imagesx($original); 
$alto_nuevo imagesy($original); 

imagecopyresampled($thumb,$original,0,0,0,0,150,150,$ancho_nuevo,$alto_nuevo); 
imagejpeg($thumb,$nom_tmb,90);  


 
//NOS CONECTAMOS A LA BASE DE DATOS 

        
$link=mysql_connect($server,$dbuser,$dbpass); 
                         
        
$query="INSERT INTO anuncios (name,precio,descripcion,id_afiliado,img,fecha) VALUES ('$name','$precio','$descripcion','$id_afiliado','$nom_img','$fecha')";   

        
$result=mysql_db_query($database,$query,$link); 
         
        if(
mysql_affected_rows($link)) 
        {  
            echo 
"Anuncio ingresado correctamente";  
             
        } else  
        {  
            echo 
"Error introduciendo el Anuncio";  
        } 
/* Cierre del else */  




    

    else 
    { 
        echo 
"error al subir la foto"
    } 


?>

espero nos puedan colaborar gracias
  #2 (permalink)  
Antiguo 14/08/2010, 12:27
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: como reducir la imagen al subirla

A ver si esto te sirve, lo retoque un poco, fijate y decime si funca

Código PHP:
<?  
$server
="localhost";              /* Nuestro server mysql:  */  
$database="xxxxxx";               /* Nuestra base de datos */  
$dbpass="xxxxxxxxxxx";               /*Nuestro password */  
$dbuser="xxxxxxxxxxxxxx";                 /* Nuestro user  */ 


//datos del arhivo  
$nombre_archivo $HTTP_POST_FILES["userfile"]["name"];  
$tipo_archivo $HTTP_POST_FILES["userfile"]["type"];  
$tamano_archivo $HTTP_POST_FILES["userfile"]["size"]; 
$id_afiliado $_POST["id_afiliado"];
$name $_POST["name"]; 
$precio $_POST["precio"];   
$descripcion $_POST["descripcion"];   

//compruebo si las características del archivo son las que deseo  

if (!((strpos($tipo_archivo"gif") || strpos($tipo_archivo"jpeg") || strpos($tipo_archivo"png")) && (    $tamano_archivo 10000000))) 
{  
    echo 
"La extension o el tamano de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 1 Mb maximo.</td></tr></table>"
?>
          <script language="JavaScript" type="text/javascript"> 
        setTimeout("url()",3000); 
        function url() 
        { 
        window.history.back(); 
        } 
            </script>
          <?     

else 
{  
    
$nom_img $id_afiliado.$nombre_archivo;  
    
     
    
$directorio 'fotos/'

    if (
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],$directorio "/" $nom_img)) 
    {  
        
$diaactualdate("d");  
        
$mesactualdate("m");  
        
$anoactualdate("Y"); 
        
$fecha$anoactual "," $mesactual "," $diaactual
         

// Simple Thumb Gen
// Por Alex para WebTaller.com
$directorio2 $directorio."tn/"

$nom_tmb $directorio2."tn_".$nom_img
$nom_img $nom_img
$nom_img2 $directorio.$nom_img




$archivo pathinfo($nom_img2); 

if (
$archivo['extension'] == "png") { 
$original imagecreatefrompng($nom_img2); 
}elseif (
$archivo['extension'] == "jpg") { 
$original imagecreatefromjpeg($nom_img2); 
}elseif (
$archivo['extension'] == "gif") { 
$original imagecreatefromgif($nom_img2); 



$ancho_nuevo imagesx($original); 
$alto_nuevo imagesy($original); 


/////////////////////////////////////////////
/////////////////////////////////////////////
/////////////////////////////////////////////
/////////////////////////////////////////////
/////////////////////////////////////////////
/////////////////////////////////////////////
    
$ancho_nuevo imagesx($original);
    
$alto_nuevo imagesy($original);

    
$max 150;  //AQUI PONES EL TAMAÑO DE LA IMAGEN A LO QUE QUIERAS

     
if($ancho_nuevo $alto_nuevo) {
        
        
$ancho_nuevo $max;
        
$alto_nuevo intval(($alto_nuevo/$ancho_nuevo)*$max);
                                
                                } else { 
                                    
       
$ancho_nuevo intval(($ancho_nuevo/$alto_nuevo)*$max);
       
$alto_nuevo $max;
                                
                                 } 
                                

$thumb imagecreatetruecolor($ancho_nuevo,$alto_nuevo); // Lo haremos de un tamaño 150x150 
imagedestroy($original); // aqui destruyo el original, pues no hace falta ya
/////////////////////////////////////////////
/////////////////////////////////////////////
/////////////////////////////////////////////
/////////////////////////////////////////////
/////////////////////////////////////////////
/////////////////////////////////////////////
/////////////////////////////////////////////
/////////////////////////////////////////////
/////////////////////////////////////////////



imagecopyresampled($thumb,$original,0,0,0,0,150,150,$ancho_nuevo,$alto_nuevo); 
imagejpeg($thumb,$nom_tmb,90);  


 
//NOS CONECTAMOS A LA BASE DE DATOS 

        
$link=mysql_connect($server,$dbuser,$dbpass); 
                         
        
$query="INSERT INTO anuncios (name,precio,descripcion,id_afiliado,img,fecha) VALUES ('$name','$precio','$descripcion','$id_afiliado','$nom_img','$fecha')";   

        
$result=mysql_db_query($database,$query,$link); 
         
        if(
mysql_affected_rows($link)) 
        {  
            echo 
"Anuncio ingresado correctamente";  
             
        } else  
        {  
            echo 
"Error introduciendo el Anuncio";  
        } 
/* Cierre del else */  




    

    else 
    { 
        echo 
"error al subir la foto"
    } 


?>
__________________
la la la

Última edición por truman_truman; 14/08/2010 a las 12:33
  #3 (permalink)  
Antiguo 14/08/2010, 13:19
 
Fecha de Ingreso: abril-2010
Mensajes: 182
Antigüedad: 14 años
Puntos: 8
Respuesta: como reducir la imagen al subirla

truman_truman amigo gracias pero

la idea es insertar una imagen, de esta reducirla a un tamaño de 600x400 y también crear una miniatura de 150x150 como lo aplicaria

gracias por tu respuesta

Etiquetas: reducir
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 09:11.