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_image, 0, 0, 0, 0, $imgW, $imgH, $imgInitW, $imgInitH);
// Rotar la imagen
$rotated_image = imagerotate($resizedImage, -$angle, 0);
// 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_image, imagecolorexact($cropped_rotated_image, 0, 0, 0));
imagecopyresampled($cropped_rotated_image, $rotated_image, 0, 0, $dx / 2, $dy / 2, $imgW, $imgH, $imgW, $imgH);
// crop de la imagen en el area seleccionada
$final_image = imagecreatetruecolor($cropW, $cropH);
imagecolortransparent($final_image, imagecolorexact($final_image, 0, 0, 0));
imagecopyresampled($final_image, $cropped_rotated_image, 0, 0, $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!