Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Subir imagen PNG con fondo transparente

Estas en el tema de Subir imagen PNG con fondo transparente en el foro de PHP en Foros del Web. Buenas noches! Tengo un pequeño problema, resulta que cuando subo imagenes png con transparencia el fondo de la imagen se vuelve negro, he visto algunas ...
  #1 (permalink)  
Antiguo 29/12/2015, 13:02
sidneyendis
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Subir imagen PNG con fondo transparente

Buenas noches!
Tengo un pequeño problema, resulta que cuando subo imagenes png con transparencia el fondo de la imagen se vuelve negro, he visto algunas posibles soluciones en el foro pero a la hora de implementarlo en mi código no consigo corregir el problema.
Os dejo mi código para ver si podeis ayudarme:
Código PHP:
 // Cambiar el tamaño original por el tamaño del editor
    
$resizedImage imagecreatetruecolor($imgW$imgH);
    
imagecopyresampled($resizedImage$source_image0000$imgW$imgH$imgInitW$imgInitH);
    
// Rotar la imagen
    
$rotated_image imagerotate($resizedImage, -$angle0);
    
// Nueva anchura y altura de la imagen rotada
    
$rotated_width imagesx($rotated_image);
    
$rotated_height imagesy($rotated_image);
    
// diferencia entre los tamaños rotados y los originales
    
$dx $rotated_width $imgW;
    
$dy $rotated_height $imgH;
    
// crop de la iamgen rotada para encajar el rectangulo
    
$cropped_rotated_image imagecreatetruecolor($imgW$imgH);
    
imagecolortransparent($cropped_rotated_imageimagecolorexact($cropped_rotated_image000));
    
imagecopyresampled($cropped_rotated_image$rotated_image00$dx 2$dy 2$imgW$imgH$imgW$imgH);
    
// crop de la imagen en el area seleccionada
    
$final_image imagecreatetruecolor($cropW$cropH);
    
imagecolortransparent($final_imageimagecolorexact($final_image000));
    
imagecopyresampled($final_image$cropped_rotated_image00$imgX1$imgY1$cropW$cropH$cropW$cropH);
    
// Salida final imagen png
    //imagepng($final_image, $output_filename.$type, $png_quality);
    
imagejpeg($final_image$output_filename.$type$jpeg_quality);
    
$response = Array(
        
"status" => 'success',
        
"url" => $output_filename.$type
    
); 
Muchas gracias por las posibles respuestas,
Saludos!
  #2 (permalink)  
Antiguo 29/12/2015, 16:51
sidneyendis
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Subir imagen PNG con fondo transparente

Me corrijo a mi mismo, el problema es más bien un despiste, la salida de la imagen final tiene que ser "imagepng" en vez de "imagejpeg":
Cita:
imagepng($final_image, $output_filename.$type, $png_quality);
Saludos!

Última edición por sidneyendis; 29/12/2015 a las 17:00

Etiquetas: png
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 20:14.