Foros del Web » Programando para Internet » PHP »

no me muestra toda la imagen en el escalado

Estas en el tema de no me muestra toda la imagen en el escalado en el foro de PHP en Foros del Web. Hola a todos: Vereis cuando inserto una imagen en mi base de datos y hay mucha diferencia entre el ancho y el alto(digamos 180px por ...
  #1 (permalink)  
Antiguo 20/11/2006, 13:45
Avatar de HAL9000v.22  
Fecha de Ingreso: noviembre-2006
Mensajes: 8
Antigüedad: 18 años
Puntos: 0
Sonrisa no me muestra toda la imagen en el escalado

Hola a todos:
Vereis cuando inserto una imagen en mi base de datos y hay mucha diferencia entre el ancho y el alto(digamos 180px por 30px) cuando se muestra con el codigo que tengo de escalado se come parte de la imagen en los laterales.
La ruta se almaccena en un varchar(255) y el archivo en una carpeta.
El codigo de escalado:
Código PHP:
<?php

function sube_foto($temporal$d_ancho$d_alto$nombre$extension){   

    switch(
$extension){
        case 
'.gif' :
            
$image imagecreatefromgif($temporal);
        break;
        case 
'.png' :
            
$image imagecreatefrompng($temporal);
        break;
        case 
'.jpg' :
            
$image imagecreatefromjpeg($temporal);
        break;
    } 

    
// Nuevas dimensiones
       
list($org_ancho$org_alto) = getimagesize($temporal);
       if(
$d_ancho/$d_alto $org_ancho/$org_alto){
        
$nuevo_ancho $d_ancho;
           
$nuevo_alto $org_alto * ($d_ancho $org_ancho);
       }else{
        
$nuevo_ancho $org_ancho * ($d_alto $org_alto);
           
$nuevo_alto $d_alto;
       }  

       
// Redimension
       
$image_p imagecreatetruecolor($nuevo_ancho$nuevo_alto);
       
$image_f imagecreatetruecolor($d_ancho$d_alto);
       
imagecopyresized($image_p$image0000$nuevo_ancho$nuevo_alto$org_ancho$org_alto);


       
// Adjuste posicion
       
$x = ($nuevo_ancho $d_ancho) / 2;
       
$y = ($nuevo_alto $d_alto) / 2;


        
//Thumb
       
imagecopyresampled($image_f$image_p00$x$y$d_ancho$d_alto$d_ancho$d_alto);

       
imagejpeg($image_f$nombre100);
       
chmod($nombre0777);
       
    return 
true;
}

?>
y la inserta en la BD el codigo de esta pagina:

Código HTML:
<form action="<? echo $PHP_SELF;?>" method="post" enctype="multipart/form-data">  
  <p class="Estilo1">Insertar publicidad  </p>
  <p>
    <input type="file" name="archivo" id="archivo" />  
  <span class="Estilo1">(formato .gif o .jpg)</span></p>
  <p>
    <input type="submit" name="submit" value="Subir imagen" />  
      </p>
</form> 
Código PHP:
<?php
include('crop_imagen.php');

$extension=NULL;
switch(
$HTTP_POST_FILES['archivo']['type']){
    case 
'image/gif'$extension='.gif'; break;
    case 
'image/jpeg'$extension='.jpg'; break;
    case 
'image/jpg'$extension='.jpg'; break;
    case 
'image/pjpeg'$extension='.jpg'; break;
    case 
'image/png'$extension='.png'; break;
}
$fecha=time();
    
$nombre=date("dmYHis",$fecha).$extension;
    
$ruta_srv='../publicidad/';
$temporal=sprintf($ruta_srv."tmp/".$nombre);    // ruta temporal

if(move_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'],$temporal)){    // subida al servidor
    
sube_foto($temporal13080$ruta_srv.$nombre$extension); 
    @
unlink($temporal); // eliminar la foto temporal
    
$dbh=mysql_connect ("ip""user""pass") or die ('I cannot connect to the database because: ' mysql_error());
         
mysql_select_db ("BD"); 
        
$sql "Insert Into colaboradores (imagen) Values ('$nombre')";
        
$result=mysql_query($sql);
}else{
    echo 
"selecciona el archivo de imagen con extensión'.jpg' o '.gif'";
}


        
?>
Gracias por todo de antemano
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 21:55.