Pendant le traitement d'image PHP, nous utilisons souvent diverses fonctions fournies par la bibliothèque GD pour lire, manipuler et générer des images. Lors du traitement des images au format .gd2 , PHP fournit deux fonctions très similaires: ImageCreateFromgd2 () et ImageCreateFromgd2Part () . À première vue, ils ont des noms similaires et semblent des fonctions similaires, mais en fait, il existe des différences essentielles dans leur objectif et leur performance.
ImageCreateFromgd2 () est une fonction utilisée pour charger l'intégralité du fichier .gd2 . La syntaxe est la suivante:
$im = imagecreatefromgd2('https://m66.net/images/sample.gd2');
Cette fonction décodera l'ensemble du fichier .gd2 et le chargera en mémoire pour générer une ressource d'image. Cette méthode est directe et efficace lorsqu'il s'agit de petites images.
Lorsque le fichier .gd2 est très grand, ImageCreateFromgd2 () chargera l'image entière en mémoire, ce qui entraîne une consommation élevée de mémoire et une inefficacité. Cela semble très gaspillé dans les scénarios où seule une partie des données d'image est nécessaire.
Pour résoudre le problème ci-dessus, PHP fournit la fonction ImageCreateFromgd2Part () , vous permettant de charger une partie de la zone d'image dans le fichier .gd2 .
$im = imagecreatefromgd2part('https://m66.net/images/sample.gd2', $srcX, $srcY, $width, $height);
Description du paramètre:
$ srcx et $ srcy : les coordonnées de départ de la région à extraire.
$ Largeur et $ Hauteur : la taille de la zone d'image à extraire.
Enregistrement de la mémoire : Chargez uniquement la zone requise.
Réponse plus rapide : Particulièrement adapté aux scènes où les vignettes de l'image ou les images locales sont chargées à la demande dans les applications Web.
Convient pour le traitement des images grandes : ImageCreateFromgd2Part () est un choix plus sûr lorsque vous êtes confronté à une image haute résolution ou grande .gd2 .
Supposons que vous ayez une image .gd2 de 10000x10000 et que vous souhaitez simplement générer une miniature 200x200.
$full = imagecreatefromgd2('https://m66.net/images/large.gd2');
$thumb = imagecreatetruecolor(200, 200);
imagecopyresampled($thumb, $full, 0, 0, 0, 0, 200, 200, 10000, 10000);
La pression de la mémoire est élevée et la vitesse est lente.
$part = imagecreatefromgd2part('https://m66.net/images/large.gd2', 1000, 1000, 500, 500);
$thumb = imagecreatetruecolor(200, 200);
imagecopyresampled($thumb, $part, 0, 0, 0, 0, 200, 200, 500, 500);
Plus efficace, particulièrement adapté aux zones partielles de l'image.
Bien que ImageCreateFromgd2 () et ImageCreatefromgd2Part () puissent lire des images .gd2 , dans le développement réel, vous devez choisir en fonction de vos besoins. Si vous avez affaire à la lecture des images petites ou entières, vous pouvez continuer à utiliser ImageCreateFromgd2 () . Mais si vous faites face à de grandes images, vous devez traiter efficacement les clips d'image ou dans des environnements sensibles à la mémoire, ImageCreatefromgd2Part () est sans aucun doute un meilleur choix.
Dans le contexte du traitement d'image haute performance, il est recommandé d'utiliser ImageCreatefromgd2Part () au lieu de la méthode traditionnelle de lecture d'image entière pour améliorer l'efficacité et la stabilité du programme.