Maison  >  Article  >  développement back-end  >  Comment puis-je récupérer les dimensions d'une image en PHP plus rapidement qu'en utilisant « getimagesize » ?

Comment puis-je récupérer les dimensions d'une image en PHP plus rapidement qu'en utilisant « getimagesize » ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-30 18:12:30281parcourir

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

Explorer une récupération plus rapide des dimensions d'une image en PHP

Dans le domaine de la programmation PHP, il peut devenir fastidieux de récupérer les dimensions d'une image à l'aide de la fonction getimagesize par défaut lorsqu'il s'agit d'un grand volume d’images distantes. Pour résoudre ce goulot d'étranglement, examinons une approche alternative qui promet des performances ultra-rapides.

En tirant parti de la fonction file_get_contents, nous ne pouvons lire qu'un nombre limité d'octets à partir d'une image. Ces données peuvent ensuite être minutieusement examinées pour déterminer les dimensions de l'image.

Pour se lancer dans cette approche, considérons l'extrait de code suivant :

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

Cette fonction utilise la fonction ranger pour récupérer un petite partie des données d’image. Par la suite, imagecreatefromstring est utilisé pour générer une ressource image à partir des données récupérées. Enfin, imagesx et imagesy nous fournissent respectivement la largeur et la hauteur de l'image.

Mise à l'épreuve avec une URL d'image, cette approche a fait preuve d'une rapidité impressionnante, comme on le voit ci-dessous :

640 x 480 (0.20859s)

Dans ce cas, l'extraction des dimensions de l'image n'a pris que 0,20859 seconde, ce qui met en évidence l'efficacité de cette méthode.

En exploitant la puissance de la lecture d'une quantité limitée de données à partir d'images distantes, nous avons mis au point une méthode remarquablement rapide. et efficace pour obtenir les dimensions d'une image en PHP. Cette technique vous permet de relever le défi du traitement de nombreuses images avec facilité et rapidité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn