PHP에서 이미지를 처리 할 때는 종종 이미지에 텍스트를 그려야하며 텍스트의 위치와 색상을 정확하게 제어하는 것이 바람직합니다. 이 기사는 imageColorAllogaint ( )와 결합 된 ImageFontWidth () 함수를 사용하여 색상 텍스트를 출력하고 텍스트 너비를 동적으로 계산하는 방법에 중점을 두어 이미지 처리 중에보다 정확한 레이아웃을 달성 할 수 있습니다.
ImageFontWidth (int $ font) : int
이 함수는 지정된 내장 글꼴의 문자 너비를 픽셀로 반환합니다. PHP 내장 글꼴 번호는 1에서 5까지이며 다른 글꼴 크기는 다른 너비에 해당합니다.
imageColorAllocate (자원 $ image, int $ red, int $ green, int $ blue) : int
이미지 자원에 색상을 할당하면 색상 값은 세 가지 매개 변수 RGB로 지정됩니다. 후속 도면에 사용되는 색상의 식별자를 반환합니다.
텍스트를 그리면 일반적으로 텍스트가 차지하는 너비를 중앙, 정렬 또는 선을 정렬하기 위해 알아야합니다. Imagestring () 함수에 의해 그려진 글꼴 너비가 고정되어 있으므로 각 문자의 너비는 ImageFontWidth () 로 획득 한 다음 문자열의 길이를 곱하여 전체 텍스트의 너비를 얻을 수 있습니다.
다음은 PHP에서 그림을 생성하고 그림에 다른 색상의 텍스트를 그리는 방법을 보여주는 간단한 예입니다. 텍스트 센터링을 달성하기 위해 텍스트 너비를 동적으로 계산합니다.
<?php
// 캔버스를 만듭니다,너비300,높은100,배경은 흰색입니다
$width = 300;
$height = 100;
$image = imagecreatetruecolor($width, $height);
// 흰색 배경
$white = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $white);
// 글꼴 크기를 선택하십시오,범위 1-5
$font = 5;
// 获取文本和计算너비度
$text = "Hello, 화려한 텍스트!";
$font_width = imagefontwidth($font);
$text_width = strlen($text) * $font_width;
// 색상을 할당합니다 - 빨간색
$red = imagecolorallocate($image, 255, 0, 0);
// 캔버스의 텍스트 시작을 계산하십시오x동등 어구,중앙 디스플레이
$x = ($width - $text_width) / 2;
$y = ($height - imagefontheight($font)) / 2;
// 출력 텍스트
imagestring($image, $font, $x, $y, $text, $red);
// 출력 사진
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>
ImageFontWidth ($ font) 별로 각 문자의 너비를 얻으십시오.
문자열 길이 strlen ($ 텍스트) 을 곱하여 텍스트의 총 너비를 얻습니다.
캔버스 너비를 사용하여 텍스트 너비를 빼고 2로 나누어 수평 센터링을 달성하십시오.
ImageColorAllother ()를 사용하여 필요한 색상을 할당하십시오. 여기에 빨간색 예제가 있습니다.
imagestring () 을 통해 지정된 좌표로 텍스트를 그립니다.
다른 색상의 여러 텍스트 세그먼트를 그려야하는 경우 먼저 각 세그먼트의 텍스트 너비를 계산하여 차례로 그릴 수 있습니다.
ImageFonTheight () 함수를 사용하여 수직 센터링을 달성 할 수 있습니다.
복잡한 텍스트의 경우 TrueType 글꼴과 함께 imageTtftext ()를 사용하는 것이 좋습니다. 그러나 너비를 계산하려면 imagetfbbox () 가 필요합니다.
이 방법을 통해 PHP 이미지 처리에서 텍스트 너비와 색상 텍스트 그리기의 기능을 쉽게 실현할 수 있으므로 텍스트로 사진을 생성 할 때 정확한 레이아웃을 용이하게합니다.