Maison > développement back-end > tutoriel php > 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
Libérer: 2024-10-30 18:12:30
original
364 Les gens l'ont consulté

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>
Copier après la connexion

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)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal