Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/08/2010, 12:27
xnaker
 
Fecha de Ingreso: agosto-2010
Mensajes: 7
Antigüedad: 13 años, 9 meses
Puntos: 0
Colorear el fondo de una imagen

BUenas estoy tratando con una carga de imagenes que al cargar crea las 3 copias de la imagen en los tamaños requeridos, lo que funciona perfectamente. El problema viene al cargar un PNG con transparencia, ya que aparece con el fondo en color negro.

estuve revisando y encontre algo relacionado con el colorallocate el cual al parecer no trabaja con el imagecreatetruecolor directamente que es el que utilizo, y hay que usar la funcion imagefill. o algo asi.

ya he probado todo lo que se me ocurre y no ha funcionado.

alguien tiene alguna idea que me pueda ayudar, aqui esta el codigo que estoy utilizando

Código PHP:
Ver original
  1. if($ext[1]=='jpg' || $ext[1]=='JPG')    $fuente = imagecreatefromjpeg($archivo);
  2. if($ext[1]=='gif' || $ext[1]=='GIF')    $fuente = imagecreatefromgif($archivo);
  3. if($ext[1]=='png' || $ext[1]=='PNG')    $fuente = imagecreatefrompng($archivo);    
  4.  
  5.     $imgAncho = imagesx($fuente);
  6.     $imgAlto = imagesy($fuente);
  7.  
  8. $imagenContruida = imagecreatetruecolor(298,218);
  9. $bgColor = imagecolorallocate($imagenConstruida, 255,255,255);
  10. imagefill($imagenConstruida , 0,0 , $bgColor);
  11. imagecopyresampled($imagenContruida,$fuente,0,0,0,0,298,218,$imgAncho,$imgAlto);
  12. imagejpeg($imagenContruida,$ruta_a,90);