Foros del Web » Programando para Internet » PHP »

redimensionar gif con transparencia

Estas en el tema de redimensionar gif con transparencia en el foro de PHP en Foros del Web. 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 ...
  #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);  

  #2 (permalink)  
Antiguo 25/01/2009, 10:07
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: redimensionar gif con transparencia

http://www.akemapa.com/2008/07/10/ph...image-png-gif/
  #3 (permalink)  
Antiguo 25/01/2009, 12:15
p2pdownloading
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: redimensionar gif con transparencia

mmm hice esto pero no me funciona, sigue poniendo en negro la transparencia, hice algo mal ?

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
          
          
imagealphablending($thumbfalse);
          
imagesavealpha($thumbtrue);
          
$transparent imagecolorallocatealpha($thumb255255255127);
          
imagefilledrectangle($thumb00$anchura$altura$transparent);
          
          
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);  

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:52.