Viele gehen so vor:
Aus $_FILES['file']['tmp_name'] je nach ermittelten (nicht: übertragenen) MimeType mit:
- imagecreatefromgif() oder
- imagecreatefromjpg() oder
- imagecreatefrompng() oder
- imagecreatefrombmp() oder
- imagecreatefromwebp() oder
die "Arbeitskopie" für PHP erzeugen. Dann mit
- imagesx() und
- imagesy()
Breite und Höhe feststellen.
Mit diesen Daten und
- imagecreatetruecolor() sowie
- imagecopy()
ein neues Bild erstellen und je nach Wunsch mit
- imagegif() oder
- imagejpeg() oder
- imagepng() oder
- imagewbmp() oder
- imagewpng() oder
- imagewebp()
in die Zieldatei wegschreiben.
Klappt etwas von den ersten Gruppe nicht, so ist es kein bmb, gif, jpeg, png oder webp. Also falls Du nicht selbst irgendwas falsch gemacht hast.
##Wichtig:##
- Bei heise.de täglich nachschauen, ob imagecreatefrom* als fehlerhaft und angreifbar gemeldet wird. Und PHP regelmäßig updaten...