Ich verwende derzeit ImageMagick, um die Größe der auf die Website hochgeladenen Bilder zu bestimmen. Wenn man ImageMagicks "identify" auf der Kommandozeile aufruft, dauert es etwa 0,42 Sekunden, um eine 1MB JPEG-Größe zu bestimmen, zusammen mit der Tatsache, dass es sich um ein JPEG handelt. Ich finde das ein bisschen langsam.Schnellste Möglichkeit zur Bestimmung der Bildauflösung und des Dateityps in der PHP- oder Unix-Befehlszeile?
Die Verwendung der Imagick PHP-Bibliothek ist noch langsamer, da versucht wird, die gesamten 1 MB im Speicher zu laden, bevor das Bild bearbeitet wird (in diesem Fall einfach Größe und Typ bestimmen).
Gibt es Lösungen, um diesen Vorgang zu beschleunigen, um festzustellen, welcher Dateityp und welche Dimensionen eine beliebige Bilddatei hat? Ich kann damit leben und nur JPEG und PNG unterstützen. Es ist mir wichtig, dass der Dateityp anhand der Header der Datei und nicht nur der Erweiterung ermittelt wird.
Edit: Die Lösung kann ich im Moment
Aber bietet GD eine Möglichkeit, einen Dateityp anhand seines Inhalts (und nicht seiner zugewiesenen Erweiterung) zu bestimmen? Sie müssen auch die Zeit messen, die benötigt wird, um das Bild in GD zu laden, da ich keine andere Verarbeitung als das Bestimmen der Dateigröße mache. – Gilles
Ich habe den Test zu meiner Antwort hinzugefügt. Ich weiß nicht, ob GD die Bilddatei vollständig in den Speicher lädt oder nicht, da ich keine Speicherkapazität habe. Aber ich erhalte die komplette Zeit, die für die Ausführung des Befehls benötigt wird. Auch getimagesize() gibt den Mime-Typ zurück. –
Danke für all die Bemühungen, ich habe es live getestet und es ist in der Tat 250 mal schneller als die -Ping-Lösung. Also ungefähr 5000 mal schneller als die ursprüngliche Methode, die ich benutzte, nicht schlecht :) – Gilles