Maison > développement back-end > tutoriel php > Traitement d'image PHP (moyen) - dessin de texte

Traitement d'image PHP (moyen) - dessin de texte

齐天大圣
Libérer: 2020-05-04 14:42:17
original
162 Les gens l'ont consulté

Dessiner du texte ordinaire

Fonction : imagestring()

imagestring ( resource $image , int $font, int $x, int $y, string $s, int $col) : bool
Copier après la connexion

imagestring() Utilisez la couleur col pour dessiner la chaîne s vers le x de l'image représentée par image , coordonnée y (c'est la coordonnée du coin supérieur gauche de la chaîne, le coin supérieur gauche de l'image entière est 0, 0). Si la police est 1, 2, 3, 4 ou 5, la police intégrée est utilisée.

Utiliser une chaîne d'images pour dessiner des polices est très simple. Mais les défauts sont également très évidents. La taille de la police n'est que de 1 à 5 et les caractères chinois ne sont pas pris en charge.

<?php
/**绘制文字**/
$imgHandler = imagecreatetruecolor(100,100);
// 绘制矩形并填充
$borderCol = imagecolorallocate($imgHandler, 23, 32, 200);
imagefilledrectangle($imgHandler, 0, 0, 99, 99, $borderCol);
// 绘制水平方向文字
$strColor = imagecolorallocate($imgHandler, mt_rand(0,100), mt_rand(0, 100), mt_rand(0, 100));
imagestring($imgHandler, 5,1, 45, &#39;hello world&#39;, $strColor);
// 垂直方向文字
imagestringUp($imgHandler, 5,45, 99, &#39;hello world&#39;, $strColor);
header("Content-Type:image/png");
imagepng($imgHandler);
imagedestroy($imgHandler);
Copier après la connexion

Utilisez la bibliothèque de polices pour dessiner du texte

Utilisez une chaîne d'images pour dessiner du texte, c'est très simple. Mais il y a plusieurs défauts. Tout d'abord : il ne peut pas dessiner le chinois. De plus, le texte dessiné à l'aide d'une chaîne d'images ne sera pas trop volumineux.

Ici, nous utilisons imagettftext pour dessiner du texte. En plus de définir la taille de la police, imagettftext peut également définir l'angle d'inclinaison de la police.

Avant utilisation, nous devons trouver quelques polices au format ttf. Il existe de nombreuses polices dans le répertoire C:WindowsFonts sous le système Windows. L'effet de l'image dessinée par

<?php
/* 使用imagettftext向图像正中写文字 */

$im = imagecreatetruecolor(300, 300);
$bgColor = imagecolorallocate($im, 222,222,222);
imagefill($im,0, 0, $bgColor);
$size = 30;
$angle = 0;
$font = &#39;D:\wwwroot\stdphp\img\font/msyhbd.ttf&#39;;
$text = &#39;大圣到此一游&#39;;

//获取文字信息
$info = imagettfbbox($size, $angle, $font, $text);
$minx = min($info[0], $info[2], $info[4], $info[6]);
$maxx = max($info[0], $info[2], $info[4], $info[6]);
$miny = min($info[1], $info[3], $info[5], $info[7]);
$maxy = max($info[1], $info[3], $info[5], $info[7]);

///* 计算文字初始坐标和尺寸 */
$x = $minx;
$y = abs($miny);
$w = $maxx - $minx;
$h = $maxy - $miny;

/* 随机文字颜色 */
$textColor = imagecolorallocate($im, mt_rand(0,150), mt_rand(0,150), mt_rand(0,150));
imagettftext($im, $size, $angle, (300 - $w) / 2 + $x, (300 - $h) / 2 + $y, $textColor, $font, $text);
header("Content-type:image/png");
imagepng($im);
imagedestroy($im);
Copier après la connexion

est le suivant :

Traitement dimage PHP (moyen) - dessin de texte

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
1
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal