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, $image, 0, 0, 0, 0, $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_p, 0, 0, $x, $y, $d_ancho, $d_alto, $d_ancho, $d_alto);
 
       imagejpeg($image_f, $nombre, 100);
       chmod($nombre, 0777);
       
    return true;
}
 
?>    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($temporal, 130, 80, $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'";
}
 
 
        
?>     
  
 

 no me muestra toda la imagen en el escalado
 no me muestra toda la imagen en el escalado 
