PHP에서는 이미지 처리에 GD 라이브러리를 사용하는 것이 일반적인 작업입니다. 이미지에 배경색으로 텍스트 블록을 그려 보려면 두 가지 함수 imageFontWidth () 와 ImageFilledRectangle ()이 매우 유용합니다. 이 기사는이 두 기능을 통해 배경 텍스트 블록 효과를 달성하는 방법을 자세히 소개합니다.
ImageFontWidth (int $ font) : int
이 함수는 지정된 내장 글꼴의 문자 너비를 반환합니다. 여기서 $ font는 GD 라이브러리의 내장 글꼴 크기 (보통 1 ~ 5)를 나타내는 정수입니다. 글꼴의 너비를 알면 텍스트 블록의 너비를 계산할 수 있습니다.
ImageFilledRectangle (자원 $ image, int $ x1, int $ y1, int $ x2, int $ y2, int $ color) : bool
이 함수는 이미지 $ 이미지 에 채워진 사각형을, 왼쪽 상단 코너 ( $ x1 , $ y1 )와 오른쪽 하단 ( $ x2 , $ y2 )에 좌표가 있으며 채우기 색상은 $ color 입니다.
이 두 기능을 결합하여 먼저 텍스트 길이와 글꼴 너비를 기반으로 배경 사각형의 크기를 계산 한 다음 사각형을 그린 다음 마지막으로 텍스트를 그려 배경으로 텍스트 블록을 형성 할 수 있습니다.
<?php
// 빈 캔버스를 만듭니다
$width = 300;
$height = 100;
$image = imagecreatetruecolor($width, $height);
// 색상 설정
$bgColor = imagecolorallocate($image, 255, 255, 255); // 흰색 배경
$textColor = imagecolorallocate($image, 0, 0, 0); // 검은 텍스트
$rectColor = imagecolorallocate($image, 200, 200, 200); // 회색 배경 블록
// 캔버스 배경색을 채우십시오
imagefill($image, 0, 0, $bgColor);
// 텍스트와 글꼴
$text = "PHP 배경이있는 텍스트 블록의 예";
$font = 5; // GD 내장 글꼴 크기,범위 1~5
// 텍스트의 너비와 높이를 계산하십시오
$fontWidth = imagefontwidth($font);
$fontHeight = imagefontheight($font);
$textWidth = $fontWidth * strlen($text);
$textHeight = $fontHeight;
// 배경 사각형 좌표(여백을 남겨주세요)
$padding = 5;
$x1 = 50;
$y1 = 30;
$x2 = $x1 + $textWidth + 2 * $padding;
$y2 = $y1 + $textHeight + 2 * $padding;
// 채우기 사각형을 배경으로 그립니다
imagefilledrectangle($image, $x1, $y1, $x2, $y2, $rectColor);
// 배경에 텍스트를 그립니다(오프셋에주의하십시오padding)
imagestring($image, $font, $x1 + $padding, $y1 + $padding, $text, $textColor);
// 출력 사진
header('Content-Type: image/png');
imagepng($image);
// 리소스를 자유롭게합니다
imagedestroy($image);
?>
imageFontWidth ($ font) 및 ImageFontheight ($ font)를 사용하여 글꼴의 단일 문자의 너비와 높이를 얻으십시오.
문자열의 길이에 따라 전체 텍스트의 너비를 계산하십시오.
배경 사각형이 텍스트에 달라 붙지 않도록 적절한 마진 $ 패딩을 설정하십시오.
ImageFilledRectangle () 로 배경 사각형을 그립니다.
그런 다음 imagestring ()을 사용하여 배경 사각형에 텍스트를 그려 텍스트에 내부 마진이 있는지 확인하십시오.
$ rectColor 의 색상 값을 조정하여 배경 블록의 색상을 변경할 수 있습니다.
다른 GD 기능과 결합하여 둥근 사각형, 그림자 등과 같은 더 많은 효과를 달성 할 수 있습니다.
보다 복잡한 글꼴 스타일을 지원 해야하는 경우 imagetftext ()를 사용하여 글꼴 파일로보다 유연한 텍스트 렌더링을 달성 할 수 있습니다.
공식 GD 라이브러리 문서는 기능에 대한 자세한 소개 를 제공합니다.