> 백엔드 개발 > PHP 튜토리얼 > PHP 이미지 처리(중간) - 텍스트 그리기

PHP 이미지 처리(중간) - 텍스트 그리기

齐天大圣
풀어 주다: 2020-05-04 14:42:17
원래의
162명이 탐색했습니다.

일반 텍스트 그리기

함수: imagestring()

imagestring ( resource $image , int $font, int $x, int $y, string $s, int $col) : bool
로그인 후 복사

imagestring() col 색상을 사용하여 image가 나타내는 이미지의 x, y 좌표에 문자열 s를 그립니다. 문자열, 전체 프레임 이미지의 왼쪽 상단은 0,0입니다. 글꼴이 1, 2, 3, 4, 5이면 내장 글꼴이 사용됩니다.

이미지 스트링을 사용하여 글꼴을 그리는 것은 매우 간단합니다. 하지만 단점도 매우 뚜렷합니다. 글꼴 크기가 1~5에 불과하고 한자는 지원되지 않습니다.

<?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);
로그인 후 복사

글꼴 라이브러리를 사용하여 텍스트를 그립니다.

이미지 문자열을 사용하여 텍스트를 그립니다. 매우 간단합니다. 그러나 몇 가지 결함이 있습니다. 우선, 중국어를 그릴 수 없습니다. 또한 이미지 문자열을 사용하여 그리는 텍스트는 너무 크지 않습니다.

여기에서는 imagettftext를 사용하여 텍스트를 그립니다. 글꼴 크기를 설정하는 것 외에도 imagettftext는 글꼴의 기울기 각도도 설정할 수 있습니다.

사용하기 전에 ttf 형식의 일부 글꼴을 찾아야 합니다. Windows 시스템 아래의 C:WindowsFonts 디렉터리에는 많은 글꼴이 있습니다.

<?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);
로그인 후 복사

님이 그린 그림의 효과는 다음과 같습니다.

PHP 이미지 처리(중간) - 텍스트 그리기

위 내용은 PHP 이미지 처리(중간) - 텍스트 그리기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
1
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿