Foros del Web » Programando para Internet » PHP »

Dar fondo transparente - GD

Estas en el tema de Dar fondo transparente - GD en el foro de PHP en Foros del Web. Hola tengo el siguiente codigo que me genera una imagen con los bordes en curva, pero estoy intentando que el fondo donde esta la curva ...
  #1 (permalink)  
Antiguo 10/06/2011, 15:49
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 13 años
Puntos: 9
Dar fondo transparente - GD

Hola tengo el siguiente codigo que me genera una imagen con los bordes en curva, pero estoy intentando que el fondo donde esta la curva sea transparente pero siempre termina como blanco , si alguien me puede ayudar plis.

Este es el codigo

Código PHP:
<?php
$juego 
$_POST['nombre'];

$corner_radius = isset($_GET['radius']) ? $_GET['radius'] : 10// The default corner radius is set to 20px
$topleft = (isset($_GET['topleft']) and $_GET['topleft'] == "no") ? false true// Top-left rounded corner is shown by default
$bottomleft = (isset($_GET['bottomleft']) and $_GET['bottomleft'] == "no") ? false true// Bottom-left rounded corner is shown by default
$bottomright = (isset($_GET['bottomright']) and $_GET['bottomright'] == "no") ? false true// Bottom-right rounded corner is shown by default
$topright = (isset($_GET['topright']) and $_GET['topright'] == "no") ? false true// Top-right rounded corner is shown by default

$corner_source imagecreatefrompng('http://www.assemblysys.com/dataServices/images/rounded_corner.png');

$corner_width imagesx($corner_source);  
$corner_height imagesy($corner_source);  
$corner_resized ImageCreateTrueColor($corner_radius$corner_radius);
ImageCopyResampled($corner_resized$corner_source0000$corner_radius$corner_radius$corner_width$corner_height);


$corner_width imagesx($corner_resized);  
$corner_height imagesy($corner_resized);  
$image imagecreatetruecolor($corner_width$corner_height);  
$image imagecreatefromjpeg($juego);
$size getimagesize($juego);

// Top-left corner
    
$dest_x 0;  
    
$dest_y 0;  
imagealphablending($imagefalse);
imagesavealpha($imagetrue);
    
imagecopymerge($image$corner_resized$dest_x$dest_y00$corner_width$corner_height100);

    
$dest_x 0;  
    
$dest_y $size[1] - $corner_height
    
$rotated imagerotate($corner_resized900);
    
imagecopymerge($image$rotated$dest_x$dest_y00$corner_width$corner_height100);  

    
$dest_x $size[0] - $corner_width;  
    
$dest_y $size[1] - $corner_height;  
    
$rotated imagerotate($corner_resized1800);
    
imagecopymerge($image$rotated$dest_x$dest_y00$corner_width$corner_height100);  

    
$dest_x $size[0] - $corner_width;  
    
$dest_y 0;  
    
$rotated imagerotate($corner_resized2700);
    
imagecopymerge($image$rotated$dest_x$dest_y00$corner_width$corner_height100);  

imagealphablending($imagefalse);
imagesavealpha($imagetrue);
imagepng($image"cov.png");

?>

<img src="cov.png"/>
  #2 (permalink)  
Antiguo 10/06/2011, 16:18
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 13 años
Puntos: 9
Respuesta: Dar fondo transparente - GD

Nadie me puede ayudar?
  #3 (permalink)  
Antiguo 10/06/2011, 16:29
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 15 años, 8 meses
Puntos: 87
Respuesta: Dar fondo transparente - GD

tal vez esta función te pueda ayudar imagecolortransparent()

Un saludo
  #4 (permalink)  
Antiguo 10/06/2011, 16:40
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 13 años
Puntos: 9
Respuesta: Dar fondo transparente - GD

Probe con el color blanco para q lo haga transparente pero no funciono :S
  #5 (permalink)  
Antiguo 10/06/2011, 16:44
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Dar fondo transparente - GD

Sigue este ejemplo http://www.forosdelweb.com/f68/aport...agenes-912637/
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 10/06/2011, 16:50
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 13 años
Puntos: 9
Respuesta: Dar fondo transparente - GD

Pero yo no quiero subir ninguna imagen a ningun lado, solo quiero generar desde una imagen, bordes redondeados con gd y que el fondo (la parte que queda al descubierto donde estan los bordes) quede con transparencia
  #7 (permalink)  
Antiguo 10/06/2011, 16:57
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Dar fondo transparente - GD

Solo te indiqué que miraras el ejemplo de como colocar el fondo transparente, aunque no he experimentado si el crearla con el método que te indiqué funciona
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 10/06/2011, 17:42
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 13 años
Puntos: 9
Respuesta: Dar fondo transparente - GD

Ah ok, igual si es esa parte que dice subir con transparencia, no lo entendi nada
  #9 (permalink)  
Antiguo 13/06/2011, 00:12
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 13 años
Puntos: 9
Respuesta: Dar fondo transparente - GD

Pero basicamente si es un png con transparencia, para que se muestre bien lo transparente no necesitaria solo poner estas linesa de codigo?

Cita:
imagealphablending($image, false);
imagesavealpha($image, true);
  #10 (permalink)  
Antiguo 13/06/2011, 08:19
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 15 años, 8 meses
Puntos: 87
Respuesta: Dar fondo transparente - GD

si te fijas el enlace que público abimaelrc el código que hace la transparencia se encuentra en el método resize() que son son estas lineas:

Código PHP:
Ver original
  1. public function resize($width, $height)
  2.     {
  3.         $newImage = imagecreatetruecolor($width, $height);
  4.         if($this->getImageType() == 'image/png' && $this->_transparent === true){
  5.             imagealphablending($newImage, false);
  6.             imagesavealpha($newImage, true);
  7.             $transparent = imagecolorallocatealpha($newImage, 255, 255, 255, 127);
  8.             imagefilledrectangle($newImage, 0, 0, $width, $height, $transparent);
  9.         }
  10.         imagecopyresampled($newImage, $this->_image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight());
  11.         $this->_image = $newImage;  
  12.     }

Un Saludo

Etiquetas: fondo, transparencia
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 13:16.