현재 위치: > 최신 기사 목록> imageColorAllocate ()와 함께 컬러 텍스트 출력을 만듭니다.

imageColorAllocate ()와 함께 컬러 텍스트 출력을 만듭니다.

M66 2025-05-24

PHP에서 이미지를 처리 ​​할 때는 종종 이미지에 텍스트를 그려야하며 텍스트의 위치와 색상을 정확하게 제어하는 ​​것이 바람직합니다. 이 기사는 imageColorAllogaint ( )와 결합 된 ImageFontWidth () 함수를 사용하여 색상 텍스트를 출력하고 텍스트 너비를 동적으로 계산하는 방법에 중점을 두어 이미지 처리 중에보다 정확한 레이아웃을 달성 할 수 있습니다.

1. 기본 기능 소개

  • ImageFontWidth (int $ font) : int

    이 함수는 지정된 내장 글꼴의 문자 너비를 픽셀로 반환합니다. PHP 내장 글꼴 번호는 1에서 5까지이며 다른 글꼴 크기는 다른 너비에 해당합니다.

  • imageColorAllocate (자원 $ image, int $ red, int $ green, int $ blue) : int

    이미지 자원에 색상을 할당하면 색상 값은 세 가지 매개 변수 RGB로 지정됩니다. 후속 도면에 사용되는 색상의 식별자를 반환합니다.

2. ImageFontWidth ()를 사용하는 이유는 무엇입니까?

텍스트를 그리면 일반적으로 텍스트가 차지하는 너비를 중앙, 정렬 또는 선을 정렬하기 위해 알아야합니다. Imagestring () 함수에 의해 그려진 글꼴 너비가 고정되어 있으므로 각 문자의 너비는 ImageFontWidth () 로 획득 한 다음 문자열의 길이를 곱하여 전체 텍스트의 너비를 얻을 수 있습니다.

3. 샘플 코드 설명

다음은 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);
?>

4. 코드 세부 사항

  • ImageFontWidth ($ font) 별로 각 문자의 너비를 얻으십시오.

  • 문자열 길이 strlen ($ 텍스트) 을 곱하여 텍스트의 총 너비를 얻습니다.

  • 캔버스 너비를 사용하여 텍스트 너비를 빼고 2로 나누어 수평 센터링을 달성하십시오.

  • ImageColorAllother ()를 사용하여 필요한 색상을 할당하십시오. 여기에 빨간색 예제가 있습니다.

  • imagestring () 을 통해 지정된 좌표로 텍스트를 그립니다.

5. 아이디어를 확장하십시오

  • 다른 색상의 여러 텍스트 세그먼트를 그려야하는 경우 먼저 각 세그먼트의 텍스트 너비를 계산하여 차례로 그릴 수 있습니다.

  • ImageFonTheight () 함수를 사용하여 수직 센터링을 달성 할 수 있습니다.

  • 복잡한 텍스트의 경우 TrueType 글꼴과 함께 imageTtftext ()를 사용하는 것이 좋습니다. 그러나 너비를 계산하려면 imagetfbbox () 가 필요합니다.

이 방법을 통해 PHP 이미지 처리에서 텍스트 너비와 색상 텍스트 그리기의 기능을 쉽게 실현할 수 있으므로 텍스트로 사진을 생성 할 때 정확한 레이아웃을 용이하게합니다.