После нескольких дней попыток найти разные решения и провести дополнительные исследования, я понял, что это работает для меня.
$image = imagecreatefromjpeg( 'image.jpg' );
imagealphablending($image, true);
$transparentcolour = imagecolorallocate($image, 255,255,255);
imagecolortransparent($image, $transparentcolour)
Значение imagealphablending($image, true);
важно.
Использование imagesavealpha($f, true);
, как упомянуто в предыдущем ответе, определенно не работает и, кажется, фактически мешает вам сделать фон прозрачным ...
Чтобы вывести прозрачное изображение с правильными заголовками.
<?php
header( 'Content-Type: image/png' );
imagepng( $image, null, 1 );
?>