Heim  >  Artikel  >  Backend-Entwicklung  >  So extrahieren Sie schnell Bildabmessungen in PHP: Sind Bibliotheken die beste Lösung?

So extrahieren Sie schnell Bildabmessungen in PHP: Sind Bibliotheken die beste Lösung?

Barbara Streisand
Barbara StreisandOriginal
2024-11-02 16:13:29800Durchsuche

How to Extract Image Dimensions in PHP Quickly: Are Libraries the Best Solution?

So bestimmen Sie schnell die Bildabmessungen in PHP: Ein Leitfaden zur Optimierung

Im Bereich der Webentwicklung ist es oft notwendig, sie abzurufen die Dimensionen entfernter Bilder effizient anpassen. Allerdings kann die native PHP-Funktion getimagesize() für große Datenmengen zeitaufwändig sein.

Erforschung alternativer Ansätze

Um diesen Prozess zu beschleunigen, wird empfohlen, die zu verwenden file_get_contents-Funktion zum Lesen einer begrenzten Anzahl von Bytes aus dem Bild. Aus diesen Binärdaten können wesentliche Informationen zu den Bildabmessungen extrahiert werden.

Untersuchung von Binärdaten

Die Untersuchung von Binärdaten erfordert formatspezifische Techniken. Beispielsweise enthält ein JPEG-Bild typischerweise die Abmessungen innerhalb der ersten 16 Bytes, während ein PNG-Bild das Parsen des IHDR-Blocks erfordert.

Nutzung von Bibliotheken

Zahlreiche Bibliotheken vereinfachen dies Prozess durch Bereitstellung vorgefertigter Funktionen zum Lesen von Bildabmessungen aus Binärdaten. Diese Bibliotheken unterstützen oft mehrere Bildformate, was die Aufgabe weiter vereinfacht.

Ein optimiertes Codebeispiel

Unten ist ein Codebeispiel, das zeigt, wie man file_get_contents und eine Bibliothek schnell verwendet Bildabmessungen erhalten:

<code class="php">function ranger($url) {
    $headers = array(
        "Range: bytes=0-32768"
    );
    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($curl);
    curl_close($curl);
    return $data;
}
$url = "http://news.softpedia.com/images/news2/Debian-Turns-15-2.jpeg";
$raw = ranger($url);
$im = imagecreatefromstring($raw);
// Javascript exif module can be used to extract meta information from image
$exif = $javascriptExif->getAllTags($raw);
$width = $exif['PixelXDimension'];
$height = $exif['PixelYDimension'];
$stop = round(microtime(true) - $start, 5);
echo $width." x ".$height." ({$stop}s)";</code>

Benchmarking und Ergebnisse

Dieser Ansatz verkürzt nachweislich die Verarbeitungszeit erheblich, insbesondere bei großen Bildmengen. Das Laden von 32 KB Daten für ein Bild mit den Abmessungen 640 x 480 Pixel dauerte beispielsweise etwa 0,20859 Sekunden.

Durch die Optimierung des Prozesses zum Abrufen der Bildabmessungen können Webentwickler die Leistung und Effizienz ihrer Anwendungen verbessern.

Das obige ist der detaillierte Inhalt vonSo extrahieren Sie schnell Bildabmessungen in PHP: Sind Bibliotheken die beste Lösung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn