$image = imagecreatefrompng($filePath);
$bg = imagecreatetruecolor(imagesx($image), imagesy($image));
imagefill($bg, 0, 0, imagecolorallocate($bg, 255, 255, 255));
imagealphablending($bg, TRUE);
imagecopy($bg, $image, 0, 0, 0, 0, imagesx($image), imagesy($image));
imagedestroy($image);
$quality = 50; // 0 = worst / smaller file, 100 = better / bigger file
imagejpeg($bg, $filePath . ".jpg", $quality);
imagedestroy($bg);
Везде вот такой пример, но он не конвертирует по настоящему, и если открыть этот файл в каком нибудь редакторе он предлагает его переименовать в png т.к. не верное разрешение
А если попробовать открыть файл функцией imagecreatefromjpeg() то она пишет
Warning: imagecreatefromjpeg(): gd-jpeg: JPEG library reports unrecoverable error: Not a JPEG file: starts with 0x89 0x50 in imgmaker.php on line 33
Warning: imagecreatefromjpeg(): 'upload/RGB.jpg' is not a valid JPEG file in mgmaker.php on line 33
Странно что в инете не нашёл жалоб на это.