En PHP, les fonctions de traitement d'image peuvent être implémentées via plusieurs fonctions fournies par la bibliothèque GD. ImageCreateFromgd2 () est une fonction de la bibliothèque GD pour charger des images au format .gd2. Dans cet article, nous présenterons comment utiliser la fonction ImageCreateFromgd2 () pour ajouter un effet de filigrane à une image. Nous montrerons également comment utiliser la fonction GD de PHP pour effectuer une manipulation d'image et créer un effet de filigrane simple.
Avant de commencer, assurez-vous que votre environnement PHP a une bibliothèque GD activée. Si vous utilisez Linux, vous pouvez l'installer via la commande suivante:
sudo apt-get install php-gd
Une fois l'installation terminée, redémarrez simplement votre serveur PHP.
Tout d'abord, nous devons utiliser la fonction ImageCreateFromgd2 () pour charger le fichier image .gd2 d'origine. Cette fonction renvoie une ressource d'image, qui peut être utilisée sur Next.
<?php
// Chargez l'image d'origine
$original_image = imagecreatefromgd2('original_image.gd2');
// Vérifiez si l'image se charge avec succès
if (!$original_image) {
die("Le chargement d'image a échoué!");
}
?>
Ensuite, nous chargeons une image en filigrane. Cela peut être une image dans n'importe quel format, comme PNG, JPEG, etc. Supposons que nous ayons une image de filigrane au format PNG.
<?php
// Chargement de l'image de filigrane
$watermark = imagecreatefrompng('watermark.png');
// Vérifiez si l'image de filigrane se charge avec succès
if (!$watermark) {
die("Le chargement du filigrane a échoué!");
}
?>
Afin d'empêcher le filigrane d'être trop abrupte, nous pouvons définir la transparence du filigrane. Vous pouvez utiliser ImageColorAllocatealPha () pour créer une couleur avec transparence. Le traitement d'image dans les bibliothèques GD utilise généralement la valeur de "transparence" de la couleur pour contrôler la transparence.
<?php
// Régler la transparence
imagealphablending($watermark, true);
imagesavealpha($watermark, true);
?>
Afin d'ajouter correctement le filigrane à l'image d'origine, nous devons calculer l'emplacement de l'image de filigrane. De manière générale, nous pouvons placer le filigrane dans le coin inférieur droit de l'image, mais vous pouvez ajuster la position en fonction de vos besoins.
<?php
// Obtenez la taille de l'image d'origine et de l'image de filigrane
$original_width = imagesx($original_image);
$original_height = imagesy($original_image);
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
// Calculez les coordonnées du placement du filigrane(Coin inférieur droit)
$x = $original_width - $watermark_width - 10;
$y = $original_height - $watermark_height - 10;
?>
Grâce à la fonction ImageCopy () , nous pouvons synthétiser l'image de filigrane sur l'image d'origine. La fonction ImageCopy () peut copier l'image source à l'emplacement spécifié de l'image cible.
<?php
// Synthétiser les filigranes à l'image d'origine
imagecopy($original_image, $watermark, $x, $y, 0, 0, $watermark_width, $watermark_height);
?>
Enfin, nous devons sortir l'image composite. Vous pouvez sélectionner une sortie d'image dans n'importe quel format (comme PNG ou JPEG). Voici la sortie de code au format PNG:
<?php
// Sortir l'image finale
header('Content-Type: image/png');
imagepng($original_image);
// Détruiser les ressources d'image,Mémoire libre
imagedestroy($original_image);
imagedestroy($watermark);
?>
<?php
// Chargez l'image d'origine
$original_image = imagecreatefromgd2('original_image.gd2');
if (!$original_image) {
die("Le chargement d'image a échoué!");
}
// Chargement de l'image de filigrane
$watermark = imagecreatefrompng('watermark.png');
if (!$watermark) {
die("Le chargement du filigrane a échoué!");
}
// Régler la transparence
imagealphablending($watermark, true);
imagesavealpha($watermark, true);
// Obtenez la taille de l'image d'origine et de l'image de filigrane
$original_width = imagesx($original_image);
$original_height = imagesy($original_image);
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
// Calculez les coordonnées du placement du filigrane(Coin inférieur droit)
$x = $original_width - $watermark_width - 10;
$y = $original_height - $watermark_height - 10;
// Synthétiser les filigranes à l'image d'origine
imagecopy($original_image, $watermark, $x, $y, 0, 0, $watermark_width, $watermark_height);
// Sortir l'image finale
header('Content-Type: image/png');
imagepng($original_image);
// Détruiser les ressources d'image,Mémoire libre
imagedestroy($original_image);
imagedestroy($watermark);
?>
En utilisant la fonction ImageCreateFromgd2 () , nous pouvons facilement charger des images au format .gd2 et utiliser la bibliothèque GD de PHP pour ajouter des filigranes aux images. Vous pouvez ajuster le format de transparence, de position et de sortie de l'image du filigrane en fonction de vos besoins. Si vous avez besoin de travailler avec des images dans d'autres formats, remplacez simplement la fonction de chargement d'image correspondante (comme ImageCreateFrommpng () ou ImageCreateFromJPEG () ).
De cette façon, vous pouvez facilement implémenter la fonction de filigrane de votre image pour protéger votre copyright de votre image ou ajouter des éléments personnalisés.