В зависимости от типа изображения вы можете выбрать правильную функцию для открытия файла:
$extension = pathinfo($filename, PATHINFO_EXTENSION);
switch ($extension) {
case 'jpg':
case 'jpeg':
$image = imagecreatefromjpeg($filename);
break;
case 'gif':
$image = imagecreatefromgif($filename);
break;
case 'png':
$image = imagecreatefrompng($filename);
break;
}
Затем вы просто сохраняете файл, используя:
imagepng($image, $new_filename);