Foros del Web » Programando para Internet » PHP »

imagerotate() con una imagen .gif con transparencia

Estas en el tema de imagerotate() con una imagen .gif con transparencia en el foro de PHP en Foros del Web. Hola a todos. Se me presentó un problema trabajando con imágenes y no puedo solucionarlo en toda la tarde. Tengo un gif que tiene una ...
  #1 (permalink)  
Antiguo 18/12/2007, 19:46
okram
Invitado
 
Mensajes: n/a
Puntos:
imagerotate() con una imagen .gif con transparencia

Hola a todos.

Se me presentó un problema trabajando con imágenes y no puedo solucionarlo en toda la tarde.

Tengo un gif que tiene una figura redonda con el resto transparente. Quiero usar esta imagen para marcar otra más grande, en cualquier formato.

El código es algo así:

Código PHP:
$wm imagecreatefromgif($file);
 
//AQUI ESTA EL PROBLEMA
//------------------------------------
 
if($rotation <> and is_numeric($rotation)) 
    
$wm imagerotate($wm$rotation, -1);
 
$wm_w = @imagesx($wm);
$wm_h = @imagesy($wm);
 
//------------------------------------
 
 
/*
//Sólo defino la posicion de la marca de agua
$posx = ($posx === false) ? ($this->rw - $wm_w) / 2 : intval($posx);
$posy = ($posy === false) ? ($this->rh - $wm_h) / 2 : intval($posy);
if($posx < 0) $posx = ($this->rw - $wm_w) + $posx;
if($posy < 0) $posy = ($this->rh - $wm_h) + $posy;
*/
 
imagecopy($img_fuente$wm$posx$posy00$wm_w$wm_h); 
Quiero que se pueda girar la imagen marca de agua, y para ello uso la función imagerotate(). Para conservar la transparencia de la imagen, lei que debo poner como tercer argumento -1. Pero al girar, el pedazo de imagen que queda por la rotacion se coloca de color negro medio verdoso , algo asi:



EDITO: El rombo blanco que contiene al redondo si conserva su transparencia. Otra cosa es que esto sólo me sucede con imágenes gif. Con jpg o png no.

Al final, este es mi problema simplificado:

Código PHP:
$wm imagecreatefromgif("wm.gif");
$wm imagerotate($wm,45,-1);
imagegif($wm); 
Este script genera la imagen anterior. Alguien sabe como puedo hacer que ese fondo negro sea transparente?

Un saludo,
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 15:36.