PHP fournit des bibliothèques de fonctions de traitement d'image puissantes, telles que la bibliothèque GD, qui peut aider les développeurs à traiter les images du côté serveur. Dans cet article, nous explorerons comment réaliser des effets de traitement d'image plus puissants en combinant des fonctions ImageFlip et ImageCopy . Nous utiliserons plusieurs exemples pour illustrer comment utiliser ces deux fonctions pour les opérations d'image et de copie d'image.
La fonction ImageFlip est utilisée pour retourner une image, qui peut retourner l'image horizontalement ou verticalement. Il accepte deux paramètres: le premier paramètre est la ressource d'image et le deuxième paramètre est le type de flip. Les types de revers communs comprennent:
IMG_FLIP_HORIZONTAL : Flip l'image horizontalement.
IMG_FLIP_VERTICAL : retournez l'image verticalement.
IMG_FLIP_BOTH : Flip horizontalement et verticalement en même temps.
La fonction ImageCopy est utilisée pour copier une zone d'une image dans une autre. Son utilisation commune est d'extraire une zone d'une image et de la copier à l'emplacement d'une autre image.
La syntaxe de base de la fonction ImageCopy est la suivante:
bool imagecopy ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h )
$ dst_image : ressource d'image cible.
$ src_image : ressource d'image source.
$ dst_x et $ dst_y : la position de départ où la zone de copie est placée dans l'image cible.
$ src_x et $ src_y : la position de départ de la zone de copie dans l'image source.
$ src_w et $ src_h : la largeur et la hauteur de la zone à copier.
Maintenant, nous allons combiner ces deux fonctions pour effectuer certaines opérations de traitement d'image courantes, telles que: retourner et copier des images, créer des effets miroir, etc.
Nous chargeons d'abord une image, le retournons horizontalement, puis coprions la partie inversée dans une autre image. Supposons que nous ayons un exemple .
<?php
// Chargez l'image d'origine
$src_image = imagecreatefromjpeg('https://gitbox.net/images/example.jpg');
// Obtenez la largeur et la hauteur de l'image
$width = imagesx($src_image);
$height = imagesy($src_image);
// Créer une ressource d'image vierge,Même taille que l'image source
$dst_image = imagecreatetruecolor($width, $height);
// Retourner l'image horizontalement
imageflip($src_image, IMG_FLIP_HORIZONTAL);
// Copiez une zone de l'image inversée vers l'image cible
imagecopy($dst_image, $src_image, 0, 0, 50, 50, $width - 50, $height - 50);
// Sortir une nouvelle image au navigateur
header('Content-Type: image/jpeg');
imagejpeg($dst_image);
// Nettoyer les ressources
imagedestroy($src_image);
imagedestroy($dst_image);
?>
Ce code sera:
Chargez l' exemple d' image.jpg.
Retournez l'image horizontalement.
Copiez la pièce inversée dans une nouvelle image et sortez-la dans le navigateur.
Dans cet exemple, nous retournons l'image verticalement, puis fusionnons l'image inversée avec l'image d'origine pour former un effet symétrique.
<?php
// Chargement de l'image
$src_image = imagecreatefromjpeg('https://gitbox.net/images/example.jpg');
// Obtenez la largeur et la hauteur de l'image
$width = imagesx($src_image);
$height = imagesy($src_image);
// Créer une nouvelle image,La largeur et la hauteur sont deux fois plus élevées que l'image d'origine
$dst_image = imagecreatetruecolor($width * 2, $height);
// Copiez l'image d'origine sur le côté gauche de l'image cible
imagecopy($dst_image, $src_image, 0, 0, 0, 0, $width, $height);
// Image d'origine verticale
imageflip($src_image, IMG_FLIP_VERTICAL);
// Copiez l'image inversée sur le côté droit de l'image cible
imagecopy($dst_image, $src_image, $width, 0, 0, 0, $width, $height);
// Sortir l'image fusionnée
header('Content-Type: image/jpeg');
imagejpeg($dst_image);
// Nettoyer les ressources
imagedestroy($src_image);
imagedestroy($dst_image);
?>
Ce code sera:
Chargez l' exemple d' image.jpg.
Copiez l'image d'origine à gauche de la nouvelle image.
Retournez l'image verticalement et copiez l'image inversée à droite.
Sortez l'image fusionnée.
La mise en miroir est un effet de traitement d'image commun. Le code suivant montre comment réaliser cet effet via des fonctions ImageFlip et ImageCopy .
<?php
// Chargement de l'image
$src_image = imagecreatefromjpeg('https://gitbox.net/images/example.jpg');
// Obtenez la largeur et la hauteur de l'image
$width = imagesx($src_image);
$height = imagesy($src_image);
// Créer une nouvelle image,Double la largeur de l'image d'origine
$dst_image = imagecreatetruecolor($width * 2, $height);
// Copiez l'image d'origine sur le côté gauche de l'image cible
imagecopy($dst_image, $src_image, 0, 0, 0, 0, $width, $height);
// Retourner l'image horizontalement
imageflip($src_image, IMG_FLIP_HORIZONTAL);
// Copiez l'image inversée sur le côté droit de l'image cible
imagecopy($dst_image, $src_image, $width, 0, 0, 0, $width, $height);
// Image d'effet miroir de sortie
header('Content-Type: image/jpeg');
imagejpeg($dst_image);
// Nettoyer les ressources
imagedestroy($src_image);
imagedestroy($dst_image);
?>
Ce code génère un effet miroir en renversant l'image horizontalement et en fusionnant l'image inversée avec l'image d'origine.
En combinant les fonctions ImageFlip et ImageCopy , PHP peut implémenter une variété de techniques de traitement d'image complexes, telles que l'image flip, copie et fusion. Ces techniques peuvent être largement utilisées dans des scènes telles que la génération de filigranes, la fabrication de cartes d'épissage, la création d'effets miroir, etc.
J'espère que cet article peut vous aider à mieux comprendre et utiliser les fonctions de traitement d'image de PHP. Pour plus de conseils pour le traitement de l'image PHP, veuillez vous référer à la documentation officielle PHP .