Maison  >  Article  >  développement back-end  >  Comment implémenter le traitement d'image et l'ajout de filigrane dans un projet PHP ?

Comment implémenter le traitement d'image et l'ajout de filigrane dans un projet PHP ?

WBOY
WBOYoriginal
2023-11-02 13:21:301275parcourir

Comment implémenter le traitement dimage et lajout de filigrane dans un projet PHP ?

Comment implémenter le traitement d'image et l'ajout de filigrane dans un projet PHP ?

Ces dernières années, avec le développement rapide d'Internet, l'utilisation d'images a joué un rôle de plus en plus important dans la conception Web et le développement d'applications. Afin de répondre aux besoins des utilisateurs en matière d'images de haute qualité, nous devons implémenter des fonctions de traitement d'image et d'ajout de filigrane dans le projet PHP. Cet article présentera un moyen simple mais efficace d’atteindre cet objectif.

1. Fonctions de traitement d'image de PHP
PHP fournit une série de fonctions de traitement d'image, qui peuvent nous aider à effectuer des opérations telles que la mise à l'échelle, le recadrage et la rotation des images. Ces fonctions incluent, sans s'y limiter :

  1. imagecreatefromjpeg() : créer des ressources d'image à partir d'images au format JPEG ;
  2. imagecreatefrompng() : créer des ressources d'image à partir d'images au format PNG
  3. imagecreatefromgif() : créer à partir d'images au format GIF Image ; ressources ;
  4. imagecopyresized() : Ajustez la taille de l'image, ce qui peut réduire et agrandir l'image ;
  5. imagecopyresampled() : Ajustez la taille de l'image, qui peut réduire et agrandir l'image tout en conservant la qualité de l'image ; () : Enregistrez l'image au format JPEG ;
  6. imagepng() : Enregistrez l'image au format PNG ;
  7. imagegif() : Enregistrez l'image au format GIF ;
  8. imagefttext() : Ajoutez du texte sur l'image.
  9. 2. Implémentez la fonction de mise à l'échelle de l'image
Supposons que nous devions redimensionner une image à une largeur et une hauteur spécifiées. Nous pouvons utiliser le code suivant pour y parvenir :

function resizeImage($srcFile, $dstFile, $newWidth, $newHeight) {
   list($srcWidth, $srcHeight, $srcType) = getimagesize($srcFile);
   $srcImage = imagecreatefromjpeg($srcFile);
   $dstImage = imagecreatetruecolor($newWidth, $newHeight);
   imagecopyresampled($dstImage, $srcImage, 0, 0, 0, 0, $newWidth, $newHeight, $srcWidth, $srcHeight);
   imagejpeg($dstImage, $dstFile);
   imagedestroy($srcImage);
   imagedestroy($dstImage);
}

Ce code obtient d'abord la largeur et la hauteur de l'image d'origine. via la fonction getimagesize() hauteur, puis utilisez la fonction imagecreatefromjpeg() pour créer l'image originale en tant que ressource d'image. Ensuite, utilisez la fonction imagecreatetruecolor() pour créer une nouvelle image vierge avec les nouvelles largeur et hauteur spécifiées. Enfin, utilisez la fonction imagecopyresampled() pour redimensionner et copier l'image originale dans une nouvelle image, puis utilisez la fonction imagejpeg() pour enregistrer la nouvelle image.

3. Implémentez la fonction de filigrane d'image

En plus de la fonction de zoom, nous devons parfois également ajouter un filigrane sur l'image. Vous pouvez utiliser le code suivant pour y parvenir :

function addWatermark($srcFile, $dstFile, $watermarkFile) {
   $srcImage = imagecreatefromjpeg($srcFile);
   $watermarkImage = imagecreatefrompng($watermarkFile);
   $srcWidth = imagesx($srcImage);
   $srcHeight = imagesy($srcImage);
   $watermarkWidth = imagesx($watermarkImage);
   $watermarkHeight = imagesy($watermarkImage);
   $posX = ($srcWidth - $watermarkWidth) / 2;
   $posY = ($srcHeight - $watermarkHeight) / 2;
   imagecopy($srcImage, $watermarkImage, $posX, $posY, 0, 0, $watermarkWidth, $watermarkHeight);
   imagejpeg($srcImage, $dstFile);
   imagedestroy($srcImage);
   imagedestroy($watermarkImage);
}

Ce code utilise d'abord imagecreatefromjpeg(). et les fonctions imagecreatefrompng() pour convertir l'image originale et les images en filigrane sont créées respectivement en tant que ressources d'image. Ensuite, utilisez les fonctions imagesx() et imagesy() pour obtenir respectivement la largeur et la hauteur de l'image originale et de l'image en filigrane. Ensuite, calculez où placer le filigrane, puis utilisez la fonction imagecopy() pour copier le filigrane sur l'image originale. Enfin, utilisez la fonction imagejpeg() pour enregistrer l'image avec le filigrane.

4. Résumé

En utilisant les fonctions de traitement d'image de PHP, nous pouvons facilement implémenter des fonctions de traitement d'image et d'ajout de filigrane. Qu'il s'agisse de mise à l'échelle ou d'ajout de filigranes, cela peut être réalisé grâce à ces fonctions. Le code ci-dessus n'est qu'un exemple simple pour implémenter ces fonctions. Selon les besoins réels, nous pouvons personnaliser une logique de traitement d'image plus complexe. J'espère que cet article pourra vous aider à implémenter le traitement d'image et l'ajout de filigrane dans les projets PHP !

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