Lors de l'utilisation de la bibliothèque GD de PHP pour le traitement d'image, ImageCharup () est une fonction pour dessiner des caractères uniques verticalement dans une image. Bien qu'il ne prenne pas en charge le style riche des polices TrueType comme ImageTtFText () , il peut toujours effectuer des tâches de dessin de personnages de base dans certains scénarios simples. Cependant, ImageCharup () lui-même ne soutient pas directement les styles italiques ou audacieux, nous devons donc "simuler" ces effets par le biais de compétences procédurales.
L'utilisation de base de la fonction ImageCharup () est la suivante:
imagecharup(resource $image, int $font, int $x, int $y, string $char, int $color): bool
$ Image : Ressource d'image
$ Font : Polices intégrées (0 à 5)
$ x , $ y : coordonnées de démarrage du caractère
$ char : le personnage à dessiner
$ couleur : identifiant de couleur
Cette fonction attire des caractères de bas en haut de l'image, avec la disposition des caractères verticalement.
Le principe de gras est: faire un léger décalage près des caractères, dessiner à nouveau le même caractère, formant un effet visuel "gras". Cela peut être fait en appelant à plusieurs reprises ImageCharup () à des positions légèrement décalées.
<?php
$image = imagecreatetruecolor(100, 100);
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);
imagefill($image, 0, 0, $white);
// Simulation audacieuse
$font = 4;
$x = 50;
$y = 80;
$char = 'A';
for ($i = 0; $i < 2; $i++) {
imagecharup($image, $font, $x + $i, $y, $char, $black);
}
imagepng($image, 'bold.png');
imagedestroy($image);
?>
En modifiant la valeur de $ x ou $ y , dessinez le même caractère deux fois ou plus pour simuler le bord "plus épais". Vous pouvez essayer d'utiliser un décalage plus important pour améliorer cet effet.
L'effet italique signifie généralement que le caractère est affiché asymétrique. ImageCharup () ne prend pas en charge la rotation ou le dessin d'inclinaison, mais nous pouvons "créer" la sensation d'inclinaison à travers le décalage de caractère ligne par ligne.
Une façon de la mettre en œuvre consiste à dessiner chaque caractère un par un, et à augmenter ou à diminuer progressivement le décalage des coordonnées X dans la direction de l'axe y pour former une disposition inclinée.
<?php
$image = imagecreatetruecolor(100, 100);
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);
imagefill($image, 0, 0, $white);
$font = 3;
$x = 40;
$y = 80;
$text = "PHP";
$offset = 0;
for ($i = 0; $i < strlen($text); $i++) {
$char = $text[$i];
imagecharup($image, $font, $x + $offset, $y - $i * 15, $char, $black);
$offset += 1; // Contrôler l'angle d'inclinaison
}
imagepng($image, 'italic.png');
imagedestroy($image);
?>
Le code ci-dessus dessinera la chaîne PHP verticalement, et en même temps former un sentiment italique en augmentant la coordonnée X littéralement. Bien que cette méthode ne soit pas aussi flexible que les polices TrueType, c'est un expédient pratique sans imagettfText () .
Bien que l'italicité et le gras soient visuellement limités à travers des polices intégrées, il est toujours pratique pour les scénarios de rendu de texte léger tels que les icônes, les codes de vérification, les appareils intégrés. Dans certaines applications d'image dynamiques simples, des besoins spécifiques peuvent également être satisfaits.
Vous pouvez publier les images générées via PHP ou les enregistrer sur le serveur, telles que:
header('Content-Type: image/png');
imagepng($image);
Ou télécharger sur votre propre serveur de noms de domaine tel que:
// Adresse de sortie: https://gitbox.net/images/bold.png
Ce qui précède est une technique pratique pour mettre en œuvre l'italique et les effets en gras via ImageCharup () . J'espère qu'il peut vous aider à appliquer de manière flexible cette fonction dans des tâches de traitement d'image légères.