Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/01/2009, 10:00
p2pdownloading
Invitado
 
Mensajes: n/a
Puntos:
redimensionar gif con transparencia

buenas, eh creado una funcion que redimensiona imagenes jpg png bmp y gif a gif, el problema es que en los gif o png con transparencias esta se pone negra. trate de averiguar en google como solucionarlo, pero no encuentro nada concreto

por favor si pueden ayudarme les estaria muy agradecido.

saludos

pd aqui les dejo la funcion, si quieren pueden usarla

Código PHP:
function thumbgif($anchura,$dir) {
$file_name $_FILES["upicon"]["name"];
  if(
is_uploaded_file($_FILES["upicon"]["tmp_name"])) {
     
move_uploaded_file($_FILES["upicon"]["tmp_name"], $dir.$file_name) or exit(__('Can\'t find destination folder','downloads-manager'));
    
$dm_upload_url $dir.$file_name;
    
$dm_message '<div class="updated fade" id="message"><p>'.__('Icon Uploaded','downloads-manager').'</p></div>';
  } else {
    
$dm_message '<div class="updated fade" id="message"><p>'.__('Error during upload of','downloads-manager').' '.$_FILES["upfile"]["name"].'</p></div>';
  }
     
// Aquí tendremos el nombre de la imagen y comprobamos la extencion
     
$imagen $dir.$_FILES['upicon']['name'];
     
$nombre=basename($imagen);
     
$name=$_POST["dm_icon_name"];
     
$partes explode('.'$nombre);
     
$ext strtolower(end($partes));
     
// Aquí la ruta especificada para buscar la imagen.
     
$camino=dirname($imagen)."/";
      if (
$ext == 'jpeg' or $ext == 'jpg' ) {
          
$img = @imagecreatefromjpeg($camino.$nombre) or exit("No se encuentra la imagen $camino$nombre<br>\\n");
     }elseif(
$ext == 'png'){
          
$img = @imagecreatefrompng($camino.$nombre) or exit("No se encuentra la imagen $camino$nombre<br>\\n");
     }elseif(
$ext == 'gif'){
          
$img = @imagecreatefromgif($camino.$nombre) or exit("No se encuentra la imagen $camino$nombre<br>\\n");
     }elseif(
$ext == 'bmp'){
          
$img = @imagecreatefromwbmp($camino.$nombre) or exit("No se encuentra la imagen $camino$nombre<br>\\n");
     }else{echo 
$ext.'No es una extencion de imagen valida para el script';}
          
// miramos el tamaño de la imagen original...
          
$datos getimagesize($camino.$nombre) or exit("Problemas con $camino$nombre<br>\\n");
          
// intentamos escalar la imagen original a la medida que nos interesa
          
$ratio = ($datos[1] / $datos[0]);
          
$altura round($anchura $ratio);
          
// esta será la nueva imagen reescalada
          
$thumb imagecreatetruecolor($anchura,$altura);
          
// con esta función la reescalamos
          
imagecopyresampled ($thumb$img0000$anchura$altura$datos[0], $datos[1]);
          
// salvamos con el nombre y en el lugar que nos interesa.
          
if(empty($name)){$name=$partes[0];}

          
imagegif($thumb,$camino.$dir_thumb.$name.'.gif');
          
unlink($camino.$nombre);