Формат JPG не поддерживает прозрачные пиксели.
Вместо этого вы можете заменить прозрачные пиксели на белый / черный, а затем выполнить преобразование:
function png2jpg($originalFile, $outputFile, $quality){
$size = getimagesize($originalFile);
$blank = imagecreate($size[0], $size[1]);
$newImage = imagecopymerge($blank, $originalFile, 0, 0, 0, 0, $size[0], $size[1], $quality);
png2jpg($newImage, $outputFile, );
$image = imagecreatefrompng($newImage);
imagejpeg($image, $outputFile, $quality);
}