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
);
Saludos!