"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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 » ?

Publié le 2024-11-04
Parcourir:834

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 nous lancer dans cette approche, considérons l'extrait de code suivant :

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)";

Cette fonction utilise la fonction ranger pour récupérer une 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.

Lorsqu'elle a été testée avec une URL d'image, cette approche a démontré 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 secondes, soulignant l'efficacité de cette méthode.

En exploitant la puissance de lecture d'une quantité limitée de données à partir d'images distantes, nous avons conçu un moyen remarquablement rapide et efficace d'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é.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3