Avec le développement rapide d'Internet, il est devenu un besoin courant d'obtenir et d'enregistrer des images sur Internet. Afin d'économiser l'espace de stockage et d'améliorer la vitesse de chargement du site Web, il est particulièrement important de limiter la taille des images enregistrées. Cet article présentera comment utiliser PHP pour atteindre des limites de taille lors de l'enregistrement des images distantes.
La bibliothèque GD de PHP est un puissant outil de traitement d'image qui prend en charge le changement de taille d'image et les opérations de compression. Tout d'abord, nous devons obtenir les informations sur la largeur et la hauteur de l'image distante via la fonction intégrée PHP GetImageSize . L'exemple de code est le suivant:
$ RemoteImageUrl = 'http://example.com/remote-image.jpg'; $ imageInfo = getImageSize ($ RemoteMageUrl); if (! $ imageInfo) { Echo 'n'a pas réussi à obtenir des photos distantes! ';; retour; } $ RemoteMageWidth = $ ImageInfo [0]; $ RemoteImageHeight = $ ImageInfo [1];
Grâce au code ci-dessus, vous pouvez obtenir avec succès la largeur et la hauteur de l'image distante.
Ensuite, définissez une largeur maximale et une hauteur maximale pour limiter la taille de l'image en fonction des besoins réels. Si la taille de l'image distante dépasse la valeur maximale définie, montez-la à l'échelle, sinon l'enregistrez directement. L'exemple de code est le suivant:
$ maxwidth = 800; $ maxheight = 600; if ($ RemoteImageWidth> $ maxwidth || $ RemoteMageHeight> $ maxheight) { // Calculez l'échelle de mise à l'échelle $ Scale = Min ($ maxwidth / $ RemoteMageWidth, $ maxheight / $ RemoteMageHeight); // Calculez la taille de taille à l'échelle $ newwidth = $ RemoteMageWidth * $ échelle; $ newheight = $ RemoteMageHeight * $ échelle; // Créer une nouvelle image vierge $ newimage = ImageCreateTrueColor ($ newwidth, $ newheight); // Copiez l'image distante sur la nouvelle image et l'échelle ImageCopyRes échantillon ($ newImage, ImageCreateFromJPEG ($ RemoteMageUrl), 0, 0, 0, 0, $ newwidth, $ NewHeight, $ RemoteMageWidth, $ RemoteMageHeight); // Enregistrer une nouvelle image sur le serveur local ImageJPEG ($ newimage, 'path / to / sauvegre / new-image.jpg'); // Mémoire gratuite ImageDestroy ($ newImage); } autre { // Aucune mise à l'échelle n'est requise, enregistrez la copie d'image distante ($ RemoteImageUrl, 'path / to / sauvegre / remote-image.jpg'); }
Avec la méthode ci-dessus, vous pouvez facilement utiliser PHP pour enregistrer des images distantes et limiter efficacement leur taille. Cette méthode garantit que les images enregistrées sont de taille raisonnable, ce qui non seulement enregistre l'espace du serveur, mais améliore également l'efficacité de chargement du site Web. Le processus global comprend: l'obtention de la taille de l'image distante, le réglage de la taille maximale, la détermination de l'échelle nécessaire et enfin de l'enregistrement.