Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/12/2006, 15:24
Avatar de ferrins
ferrins
 
Fecha de Ingreso: mayo-2005
Mensajes: 64
Antigüedad: 19 años
Puntos: 1
función para hacer thumbnails proporcionales al original

Hola!

Bueno pues estoy buscando alguna función que cree un thumbnail, pero que lo haga proporcionalmente, es decir que pille la foto grande y cree una nueva imagen respetando la relacion de ancho y de alto, supongo que dandole un valor determinado como por ejemplo 100 px de ancho ya calcularia el alto proporcional. Yo encontré una función pero no chuta bien para fotos de ancho y alto diferente, a no ser que quieras especificarlos, ya que estoy la pongo porque siempre es útil:

function createthumb($name,$filename,$new_w,$new_h){
$system=explode('.',$name);
if (preg_match('/jpg|jpeg/',$system[1])){
$src_img=imagecreatefromjpeg($name);
}
$src_img=imagecreatefromjpeg($name);
if (preg_match('/png/',$system[1])){
$src_img=imagecreatefrompng($name);
}
$old_x=imageSX($src_img);
$old_y=imageSY($src_img);
if ($old_x > $old_y) {
$thumb_w=$new_w;
$thumb_h=$old_y*($new_h/$old_x);
}
if ($old_x < $old_y) {
$thumb_w=$old_x*($new_w/$old_y);
$thumb_h=$new_h;
}
if ($old_x == $old_y) {
$thumb_w=$new_w;
$thumb_h=$new_h;
}
$dst_img=ImageCreateTrueColor($thumb_w,$thumb_h);
imagecopyresampled($dst_img,$src_img,0,0,0,0,$thum b_w,$thumb_h,$old_x,$old_y);
if (preg_match("/png/",$system[1]))
{
imagepng($dst_img,$filename);
} else {
imagejpeg($dst_img,$filename);
}
imagedestroy($dst_img);
imagedestroy($src_img);
}

y para llamarla muy facil:

createthumb("/img/nombrefoto","/img/thumbs/nombrefoto",75,75);

Bueno pues nada si alguien me puede ayudar con una función semejante a esta pero que haga el thumbnail proporcionado, pues gracias!