PNG sin transparecina en PHP

He desarrollado un código el cual redimensiona las imágenes que subo en php.

El código es el siguiente:

function thumbnail($path,$width,$height){    $info_imagen = getimagesize($path);    $imagen_ancho = $info_imagen[0];    $imagen_alto = $info_imagen[1];    $imagen_tipo = $info_imagen['mime'];    $lienzo = imagecreatetruecolor($width,$height);    switch($imagen_tipo){        case "image/jpg";        case "image/jpeg";        $imagen = imagecreatefromjpeg($path);        break;        case "image/png";        $imagen = imagecreatefrompng($path);        break;        case "image/gif";        $imagen = imagecreatefromgif($path);        break;    }    imagecopyresampled($lienzo,$imagen,0,0,0,0,$width,$height,$imagen_ancho,$imagen_alto);    $final = imagejpeg($lienzo,$path,100);    return $final;}

Hasta aqui todo bien.

Me redimensiona la imagen con su respectivo formato.

Pero, los png y los gif el fondo me lo pone de color negro...

¿Alguien sabe que falla en el código?

PD: Yo creo que es porque en la variable "$final" se ejecuta "imagejpeg", osea que siempre devuelve jpeg, pero no consigo hacer funcionar "imagepng" o "imagegif".

1 respuesta

Respuesta
1

Que tal lo que pasa es que a veces las imágenes png son de color transparente, y hay que tratarlas como tal, sin embargo tienes estas 2 funciones para agregarselas a tu imagen final:

http://php.net/manual/en/function.imagesavealpha.php 

http://php.net/manual/es/function.imagealphablending.php 

Saludos.

Gracias por suscribirte: https://www.youtube.com/user/dimit28 y visitar: http://develoteca.com 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas