Maison >développement back-end >Problème PHP >Recadrer automatiquement les images en php

Recadrer automatiquement les images en php

WBOY
WBOYoriginal
2023-05-06 20:54:07790parcourir

Avec le développement d'Internet, les images sont devenues un élément indispensable des sites Web et des applications. Cependant, lors de l'utilisation d'images sur des sites Web ou des applications, nous rencontrons parfois des problèmes, tels que des tailles d'image incompatibles, des formats d'image incohérents, etc. Ces problèmes affecteront l’expérience utilisateur du site Web ou de l’application. Pour ce faire, nous avons besoin d’une technologie qui recadre automatiquement les images afin qu’elles correspondent mieux à nos besoins sans affecter leur visibilité.

PHP est un langage de programmation puissant qui peut être facilement utilisé avec des bibliothèques de traitement d'images. Dans cet article, nous présenterons comment utiliser la bibliothèque GD en PHP pour recadrer automatiquement les images.

Qu'est-ce que la bibliothèque GD ?

La bibliothèque GD est une bibliothèque de code open source pour le traitement d'images. Il fournit une variété de fonctions et de méthodes qui peuvent être utilisées pour créer, traiter et enregistrer différents types de fichiers image, notamment JPEG, PNG, GIF, etc. La bibliothèque GD est une bibliothèque d'extension commune pour PHP et de nombreux autres langages de programmation, qui offre aux programmeurs PHP une grande flexibilité dans le traitement des images.

Comment utiliser la bibliothèque GD pour recadrer des images

Avant d'utiliser la bibliothèque GD pour recadrer des images, nous devons nous assurer que la bibliothèque GD a été installée sur le serveur. Pour vérifier si la bibliothèque GD est installée sur le serveur, vous pouvez utiliser la fonction phpinfo(). Si vous voyez l'élément "GD Support" apparaître dans la fenêtre de sortie, cela signifie que la bibliothèque GD a été correctement installée. Si vous ne voyez pas cet élément, vous devez installer la bibliothèque GD sur le serveur. Avant de faire cela, vous devez vous assurer que vous disposez des droits d'administrateur ou de l'autorisation d'un administrateur.

Ensuite, voyons comment utiliser la bibliothèque GD pour recadrer des images. En PHP, nous pouvons créer une nouvelle image vierge en utilisant la fonction imagecreatetruecolor(). L'image originale peut ensuite être découpée à partir de la position et des dimensions spécifiées à l'aide de la fonction imagecopyresampled() et copiée dans une nouvelle image.

Ce qui suit est une fonction PHP simple pour recadrer automatiquement les images :

function crop_image($source_path, $target_path, $width, $height) {
  list($original_width, $original_height, $type) = getimagesize($source_path);
  $image = imagecreatefromstring(file_get_contents($source_path));
  $crop_width = min($original_width, $original_height * $width / $height);
  $crop_height = min($original_height, $original_width * $height / $width);
  $crop_x = ($original_width - $crop_width) / 2;
  $crop_y = ($original_height - $crop_height) / 2;
  $new_image = imagecreatetruecolor($width, $height);
  imagecopyresampled($new_image, $image, 0, 0, $crop_x, $crop_y, $width, $height, $crop_width, $crop_height);
  imagejpeg($new_image, $target_path, 90);
  imagedestroy($image);
  imagedestroy($new_image);
}

Analysons cette fonction en détail. Cette fonction accepte quatre paramètres : chemin source, chemin destination, largeur et hauteur de l'image de destination. Dans la fonction, nous obtenons d'abord la largeur et la hauteur de l'image originale via la fonction getimagesize().

Ensuite, nous calculons la largeur et la hauteur à couper. Dans cet exemple, nous choisissons de calculer en fonction de la hauteur cible. Nous pouvons calculer la largeur et la hauteur à découper en fonction du rapport hauteur/largeur cible. Après avoir calculé la largeur et la hauteur à découper, nous pouvons utiliser la fonction imagecreatetruecolor() pour créer une nouvelle image vierge.

Ensuite, nous utilisons la fonction imagecopyresampled() pour couper l'image originale de la position et de la taille spécifiées et la copier dans la nouvelle image. Cette fonction accepte de nombreux paramètres, où le premier paramètre représente l'image cible, le deuxième paramètre représente l'image source, les troisième et quatrième paramètres représentent les coordonnées du coin supérieur gauche de l'image cible et les cinquième et sixième paramètres représentent les coordonnées. À partir de Où commencer à recadrer l'image originale, les septième et huitième paramètres représentent la largeur et la hauteur de l'image cible, et les deux derniers paramètres représentent la largeur et la hauteur de la partie recadrée.

Enfin, nous utilisons la fonction imagejpeg() pour enregistrer la nouvelle image dans le chemin cible tout en définissant la qualité de l'image sur 90. Enfin, nous utilisons la fonction imagedestroy() pour libérer de la mémoire et éviter les fuites de mémoire.

Résumé

L'utilisation de la bibliothèque GD en PHP présente de nombreux avantages pour recadrer automatiquement les images. Tout d’abord, vous pouvez vous assurer que l’image a été correctement redimensionnée pour s’adapter à différents écrans et appareils. Deuxièmement, cela peut améliorer l’expérience utilisateur et donner aux sites Web et aux applications une apparence plus sophistiquée. Enfin, cette technologie peut également nous aider à créer des sites Web et des applications plus rapides et plus efficaces.

Bien sûr, le recadrage des images n'est qu'une des nombreuses fonctionnalités fournies par la bibliothèque GD. En utilisant la bibliothèque GD, vous pouvez également créer des images, les faire pivoter, les redimensionner, ajouter des filigranes, etc. En résumé, la bibliothèque GD est un outil de traitement d'image très puissant, idéal pour les développeurs de PHP et d'autres langages de programmation.

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