Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich Bildabmessungen in PHP schneller abrufen als mit „getimagesize“?

Wie kann ich Bildabmessungen in PHP schneller abrufen als mit „getimagesize“?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-30 18:12:30281Durchsuche

How Can I Retrieve Image Dimensions in PHP Faster Than Using `getimagesize`?

Erkundung eines schnelleren Abrufs von Bildabmessungen in PHP

Im Bereich der PHP-Programmierung kann es umständlich werden, Bildabmessungen mithilfe der Standardfunktion getimagesize abzurufen, wenn es um a geht große Menge an Remote-Bildern. Um diesen Engpass zu beheben, beschäftigen wir uns mit einem alternativen Ansatz, der eine blitzschnelle Leistung verspricht.

Durch die Nutzung der Funktion „file_get_contents“ können wir nur eine begrenzte Anzahl von Bytes aus einem Bild lesen. Diese Daten können dann sorgfältig untersucht werden, um die Abmessungen des Bildes zu bestimmen.

Um diesen Ansatz zu verfolgen, betrachten wir den folgenden Codeausschnitt:

<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;
}

$start = microtime(true);

$url = "http://news.softpedia.com/images/news2/Debian-Turns-15-2.jpeg";

$raw = ranger($url);
$im = imagecreatefromstring($raw);

$width = imagesx($im);
$height = imagesy($im);

$stop = round(microtime(true) - $start, 5);

echo $width." x ".$height." ({$stop}s)";</code>

Diese Funktion nutzt die Ranger-Funktion, um ein abzurufen kleiner Teil der Bilddaten. Anschließend wird imagecreatefromstring verwendet, um aus den abgerufenen Daten eine Bildressource zu generieren. Schließlich liefern uns imagesx und imagesy die Breite bzw. Höhe des Bildes.

Beim Test mit einer Bild-URL zeigte dieser Ansatz beeindruckende Geschwindigkeit, wie unten zu sehen ist:

640 x 480 (0.20859s)

In diesem Fall dauerte das Extrahieren der Bildabmessungen nur 0,20859 Sekunden, was die Effizienz dieser Methode unterstreicht.

Durch die Nutzung der Leistungsfähigkeit des Lesens einer begrenzten Datenmenge aus entfernten Bildern haben wir eine bemerkenswert schnelle Lösung entwickelt und effiziente Möglichkeit, Bildabmessungen in PHP zu erhalten. Mit dieser Technik können Sie die Herausforderung der Verarbeitung zahlreicher Bilder einfach und schnell meistern.

Das obige ist der detaillierte Inhalt vonWie kann ich Bildabmessungen in PHP schneller abrufen als mit „getimagesize“?. 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