Lors du traitement des images, les filigranes sont un moyen courant de protéger le droit d'auteur ou d'améliorer la reconnaissance de la marque. PHP nous fournit de nombreuses fonctionnalités pour le traitement d'image, où ImageStRingUp () est une fonction qui dessine du texte vertical, qui est très adapté pour ajouter des filigranes verticales aux images. Aujourd'hui, nous expliquerons comment dessiner des filigranes verticaux à l'aide de la fonction ImageStRing () dans PHP.
Tout d'abord, vous devez vous assurer que votre environnement PHP prend en charge la bibliothèque GD, car ImageStRingUp () fait partie de la bibliothèque GD. La bibliothèque GD est une bibliothèque de traitement d'image couramment utilisée en PHP et peut généralement être activée lorsque PHP est installé. Vous pouvez vérifier si votre PHP a une bibliothèque GD activée en suivant le code suivant:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">function_exists</span></span><span>(</span><span><span class="hljs-string">'gd_info'</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"GD library is enabled!"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"GD library is not enabled!"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Si votre environnement n'activait pas la bibliothèque GD, vous devez l'activer dans le fichier php.ini ou l'installer à l'aide du gestionnaire de packages.
Le processus de base de dessin de filigranes verticaux est le suivant:
Créer ou charger l'image cible.
Réglez le texte de filigrane, la police, la couleur, etc.
Utilisez ImageStRingUp () pour dessiner du texte vertical.
Sortir ou enregistrer l'image traitée.
Voici un exemple complet de code PHP qui montre comment utiliser ImageStRingUp () pour ajouter du texte de filigrane vertical à une image.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Créer une image d'arrière-plan</span></span><span>
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-number">800</span></span><span>, </span><span><span class="hljs-number">600</span></span><span>);
</span><span><span class="hljs-comment">// Sélectionner la couleur d'arrière-plan</span></span><span>
</span><span><span class="hljs-variable">$bg_color</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocate</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>); </span><span><span class="hljs-comment">// Fond blanc</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagefill</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$bg_color</span></span><span>);
</span><span><span class="hljs-comment">// Chargement des fichiers de police</span></span><span>
</span><span><span class="hljs-variable">$font</span></span><span> = </span><span><span class="hljs-string">'./path/to/your/font.ttf'</span></span><span>; </span><span><span class="hljs-comment">// Veuillez vous assurer que le chemin du fichier de police est correct</span></span><span>
</span><span><span class="hljs-comment">// Définir le contenu du texte du filigrane</span></span><span>
</span><span><span class="hljs-variable">$watermark_text</span></span><span> = </span><span><span class="hljs-string">'Your Watermark'</span></span><span>;
</span><span><span class="hljs-comment">// Réglez la taille de la police</span></span><span>
</span><span><span class="hljs-variable">$font_size</span></span><span> = </span><span><span class="hljs-number">20</span></span><span>;
</span><span><span class="hljs-comment">// Couleur de texte de filigrane(gris)</span></span><span>
</span><span><span class="hljs-variable">$watermark_color</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocate</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>);
</span><span><span class="hljs-comment">// Calculez la largeur et la hauteur du texte de filigrane</span></span><span>
</span><span><span class="hljs-variable">$bbox</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagettfbbox</span></span><span>(</span><span><span class="hljs-variable">$font_size</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$font</span></span><span>, </span><span><span class="hljs-variable">$watermark_text</span></span><span>);
</span><span><span class="hljs-variable">$watermark_width</span></span><span> = </span><span><span class="hljs-title function_ invoke__">abs</span></span><span>(</span><span><span class="hljs-variable">$bbox</span></span><span>[</span><span><span class="hljs-number">2</span></span><span>] - </span><span><span class="hljs-variable">$bbox</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>]);
</span><span><span class="hljs-variable">$watermark_height</span></span><span> = </span><span><span class="hljs-title function_ invoke__">abs</span></span><span>(</span><span><span class="hljs-variable">$bbox</span></span><span>[</span><span><span class="hljs-number">5</span></span><span>] - </span><span><span class="hljs-variable">$bbox</span></span><span>[</span><span><span class="hljs-number">3</span></span><span>]);
</span><span><span class="hljs-comment">// Dessiner du texte de filigrane vertical</span></span><span>
</span><span><span class="hljs-variable">$x</span></span><span> = </span><span><span class="hljs-number">50</span></span><span>; </span><span><span class="hljs-comment">// Définir le texte du filigraneXcoordonner</span></span><span>
</span><span><span class="hljs-variable">$y</span></span><span> = </span><span><span class="hljs-number">100</span></span><span>; </span><span><span class="hljs-comment">// Définir le texte du filigraneYcoordonner</span></span><span>
</span><span><span class="hljs-comment">// utiliserimagestringupDessiner du texte vertical</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagestringup</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>, </span><span><span class="hljs-variable">$x</span></span><span>, </span><span><span class="hljs-variable">$y</span></span><span>, </span><span><span class="hljs-variable">$watermark_text</span></span><span>, </span><span><span class="hljs-variable">$watermark_color</span></span><span>);
</span><span><span class="hljs-comment">// Image de sortie</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Type: image/png'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagepng</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-comment">// Mémoire libre</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Créer une image:
Utilisez ImageCreateTrueColor () pour créer une toile vierge de 800x600. Vous pouvez ajuster la taille de la toile selon les besoins.
Créez ensuite un fond blanc avec ImageColorAllocate () et remplissez la toile.
Chargement des polices:
Dans cet exemple, nous avons utilisé TrueType Font (fichier .TTF ) et vous devez fournir le chemin d'accès au fichier de police. Le chemin vers la police peut être un chemin relatif ou absolu.
Définir le texte du filigrane:
Dessinez du texte vertical via ImageStrigup () . Les paramètres de cette fonction incluent les ressources d'image, la taille de la police, les coordonnées X et Y, le contenu du texte et la couleur du texte.
Calculez la largeur et la hauteur du texte de filigrane:
Pour aligner le filigrane sur l'image, nous avons calculé la largeur et la hauteur du texte du filigrane. Imagettfbbox () renvoie un tableau contenant des boîtes de délimitation et calcule la taille du texte.
Dessinez un filigrane:
Enfin, utilisez ImageStRingUp () pour dessiner du texte vertical à la position spécifiée, avec la couleur de texte gris.
Image de sortie:
Utilisez ImagePng () pour sortir l'image. Cette fonction sortira l'image vers le navigateur au format PNG. Vous pouvez sortir d'autres formats au besoin, tels que ImageJPEG () ou ImageGif () .
Mémoire libre:
Utilisez iMageDestroy () pour libérer des ressources d'image pour éviter les fuites de mémoire.
Sélection de la police: dans Windows Systems, les polices qui sont livrées avec le système sont généralement au format .TTF , tandis que dans Linux, les chemins des fichiers de police peuvent varier. Assurez-vous que le chemin de la police est correct, sinon la police ne sera pas chargée.
Position de filigrane: Vous pouvez ajuster la position du filigrane en ajustant les coordonnées de X et Y. Si plus de contrôle est nécessaire, la taille de l'image peut être calculée avant de dessiner le texte et la position de filigrane peut être ajustée dynamiquement.
Optimisation des performances: lorsque l'image est grande, le traitement d'image consommera plus de ressources. Si vous devez traiter fréquemment un grand nombre d'images, envisagez d'utiliser du cache ou du traitement asynchrone.
ImageStrigup () est une fonction très pratique dans la bibliothèque PHP GD, spécialement utilisée pour dessiner des filigranes de texte vertical. Dans ce tutoriel, nous détaillons comment créer un filigrane vertical, y compris les étapes complètes de la création d'images à la sortie. J'espère que vous pourrez apprendre à réaliser facilement l'effet de filigrane du texte vertical dans PHP à travers ce tutoriel et à pouvoir l'utiliser de manière flexible dans votre projet.