Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/11/2006, 13:45
Avatar de HAL9000v.22
HAL9000v.22
 
Fecha de Ingreso: noviembre-2006
Mensajes: 8
Antigüedad: 17 años, 6 meses
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