Maison >développement back-end >tutoriel php >Manipulation d'images en php à l'aide de GD

Manipulation d'images en php à l'aide de GD

Jennifer Aniston
Jennifer Anistonoriginal
2025-03-04 09:20:11608parcourir

Ce tutoriel explore la bibliothèque GD (Graphic Draw) de PHP pour une manipulation efficace d'image. La gestion de nombreuses images de sites Web peut être difficile, mais GD automatise des tâches comme le redimensionnement, le recadrage et le filtrage.

Ce guide couvre:

  • Création d'images avec PHP GD: Créer de nouvelles images, charger des fichiers existants et générer des images à partir de chaînes.
  • Transformations d'image: Images de rotation, d'échelle, de recadrage et de retournement.
  • Filtrage d'images: Appliquer des effets comme les niveaux de gris et les ajustements de contraste.
  • Fonctions d'image essentielles: Obtenir des dimensions d'image, enregistrer des images modifiées et manipuler les couleurs de pixels.
  • Traitement d'image par lots: Redimensionner et appliquer des filtres à toutes les images d'un répertoire.

Qu'est-ce que GD?

La bibliothèque GD de PHP vous permet de manipuler et de créer des images directement dans vos scripts PHP. Il gère les besoins d'édition d'images communs.

Configuration

sur Windows, activez l'extension php_gd2.dll dans votre fichier php.ini (souvent situé dans xamppphpext). Vérifiez l'installation de GD à l'aide de imagecreatefrompng(). La fonction imagecolorsforindex($image, $color) est utile pour une manipulation précise des couleurs. Cependant, pour des ajustements de couleurs plus flexibles, envisagez de travailler avec des composants de couleur individuels (rouge, vert, bleu) pour permettre la tolérance.

Manipulating Images in PHP Using GD

Images de redimensionnement par lots

Cet exemple redimensionne toutes les images JPEG dans un répertoire ("Nature /") à une largeur de 640 pixels, ajustant automatiquement la hauteur proportionnellement. Les images redimensionnées sont enregistrées dans un nouveau sous-répertoire "redimensionné".

$directory = 'Nature/';
$images = glob($directory."*.jpg");

foreach($images as $image) {
    $im_php = imagecreatefromjpeg($image);
    $im_php = imagescale($im_php, 640);
    $new_height = imagesy($im_php);
    $new_name = str_replace('-1920x1080', '-640x'.$new_height, basename($image));
    imagejpeg($im_php, $directory.'Resized/'.$new_name);
}

Ce code utilise glob() pour localiser les JPEG, imagecreatefromjpeg() pour les charger, imagescale() pour le redimensionnement, et imagejpeg() pour enregistrer les résultats. Les ajustements de nom de fichier assurent la clarté.

Lot en appliquant les filtres

Cet exemple applique des filtres en niveaux de gris et en contraste (-25 pour un contraste accru) à tous les JPEG dans "Nature /", en enregistrant les images filtrées à un sous-répertoire "GraysCale".

$directory = 'Nature/';
$images = glob($directory."*.jpg");

foreach($images as $image) {
    $im_php = imagecreatefromjpeg($image);
    imagefilter($im_php, IMG_FILTER_GRAYSCALE);
    imagefilter($im_php, IMG_FILTER_CONTRAST, -25);
    $new_name = basename($image);
    imagejpeg($im_php, $directory.'Grayscale/'.$new_name);
}

imagefilter() Modifie directement la ressource d'image. Notez que les valeurs de contraste varient de -100 à 100 (les valeurs négatives augmentent le contraste).

Conclusion

La bibliothèque GD de PHP offre de puissantes capacités de manipulation d'images, rationalisant la gestion des images du site Web et gagnant un temps considérable. Les exemples fournis servent de base pour créer des scripts de traitement d'image plus complexes. Des fonctions comme imagesx() permettent la manipulation de l'image conditionnelle basée sur les dimensions.

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