PHP / GD ImageSaveAlpha e ImageAlphaBlending

Estoy usando GD para redimensionar y convertir imágenes, sin embargo, durante mis pruebas encontré un comportamiento extraño al convertir archivos PNG transparentes a JPEG. Según el manualImageAlphaBlending() está activado de forma predeterminada, pero para preservar la transparencia debo configurarImageSaveAlpha() a verdadero (que a su vez requiere que establezca ImageAlphaBlending () a falso). Así que la forma correcta debe ser:

<code>$result = ImageCreateFromPNG(...);
ImageAlphaBlending($result, false);
ImageSaveAlpha($result, true);
ImageFill($result, 0, 0, IMG_COLOR_TRANSPARENT);
ImageJPEG($result);
ImageDestroy($result);
</code>

Sin embargo, si lo hago de la manera "correcta", todo el área de transparencia aparece en negro en el JPEG. Esto parece funcionar (JPEG con fondo blanco en áreas transparentes) en mis pruebas:

<code>$result = ImageCreateFromPNG(...);
ImageAlphaBlending($result, true); // true by default, but still...
ImageSaveAlpha($result, true);
ImageFill($result, 0, 0, IMG_COLOR_TRANSPARENT);
ImageJPEG($result);
ImageDestroy($result);
</code>

¿Alguien puede por favor aclararme sobre este tema?

Respuestas a la pregunta(2)

Su respuesta a la pregunta