Position actuelle: Accueil> Derniers articles> Faire des images de texte avec des ombres transparentes

Faire des images de texte avec des ombres transparentes

M66 2025-05-18

Dans le développement Web, nous voulons parfois générer dynamiquement des images de texte avec de beaux effets d'ombre pour les boutons, les titres ou les filigranes. Heureusement, la bibliothèque GD de PHP fournit des capacités de traitement d'image puissantes, où la fonction ImageColorallocatealPha () nous aide à définir les couleurs avec la transparence, ce qui facilite le dessin de texte avec des ombres transparentes.

Cet article expliquera étape par étape comment utiliser la fonction ImageColorAllocatealPha () pour créer une image texte avec un effet d'ombre transparent.

Étape 1: Créez une toile

Tout d'abord, nous devons créer un toile d'image. Ici, nous utilisons la fonction ImageCreateTrueColor () pour créer une véritable image couleur.

 <?php
// Créer largement 400px,haut 100px Toile
$width = 400;
$height = 100;
$image = imagecreatetruecolor($width, $height);

// Définir la couleur d&#39;arrière-plan(Blanc)
$white = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $white);

Étape 2: Activer les canaux transparents

Pour que les parties transparentes de l'image PNG soient correctement affichées, nous devons désactiver le mode de mélange et activer le canal Save Alpha.

 // Éteignez le mode de mélange
imagealphablending($image, false);
// Activer alpha garder
imagesavealpha($image, true);

Étape 3: Définissez la couleur de l'ombre avec la transparence

Les paramètres de la fonction ImageColorAllocatEalpha () sont (image, rouge, vert, bleu, alpha) , où la valeur alpha varie de 0 (complètement opaque) à 127 (complètement transparente).

Par exemple, nous définissons une ombre translucide noire:

 // Définir les ombres translucides noires
$shadow_color = imagecolorallocatealpha($image, 0, 0, 0, 60);

Remarque: 60 ici signifie environ des effets semi-transparents.

Étape 4: Dessinez les ombres et le texte

Nous utilisons la fonction ImageTtFText () pour dessiner du texte, et nous devons spécifier le chemin du fichier de police.

 // Chemin de fichier de police(Veuillez ajuster en fonction de la situation réelle)
$font = __DIR__ . '/arial.ttf';
$text = 'Hello, m66.net!';
$font_size = 24;

// Dessiner des ombres(Quelques pixels légèrement décalés)
imagettftext($image, $font_size, 0, 22, 62, $shadow_color, $font, $text);

// Dessinez le texte principal(noir)
$text_color = imagecolorallocate($image, 0, 0, 0);
imagettftext($image, $font_size, 0, 20, 60, $text_color, $font, $text);

Étape 5: Sortie de l'image et nettoyez la mémoire

Enfin, nous sortions l'image au format PNG et libérons des ressources.

 // installation header
header('Content-Type: image/png');
// Image de sortie
imagepng($image);
// Mémoire libre
imagedestroy($image);
?>

Exemple de code complet

 <?php
$width = 400;
$height = 100;
$image = imagecreatetruecolor($width, $height);

$white = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $white);

imagealphablending($image, false);
imagesavealpha($image, true);

$shadow_color = imagecolorallocatealpha($image, 0, 0, 0, 60);
$text_color = imagecolorallocate($image, 0, 0, 0);

$font = __DIR__ . '/arial.ttf';
$text = 'Hello, m66.net!';
$font_size = 24;

imagettftext($image, $font_size, 0, 22, 62, $shadow_color, $font, $text);
imagettftext($image, $font_size, 0, 20, 60, $text_color, $font, $text);

header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>

Choses à noter

  1. Fichier de police <br> Le code ci-dessus utilise le fichier de police Arial.ttf . Veuillez vous assurer que le fichier de police existe dans le répertoire où le script est situé ou modifié sur un autre chemin de police de votre serveur.

  2. Ajustement de transparence
    Les paramètres alpha peuvent être ajustés au besoin. Si vous voulez être plus transparent, vous pouvez utiliser une valeur plus grande (près de 127); Si vous voulez être plus opaque, vous pouvez utiliser une valeur plus petite.

  3. Suggestions de déploiement <br> Lors du déploiement, assurez-vous que la bibliothèque GD est activée dans la configuration PHP du serveur, sinon le code ne s'exécutera pas.