PHP에서 이미지와 텍스트를 조작 할 때 텍스트 중심, 정렬 또는 포장의 영향을 달성하기 위해 그림의 텍스트 너비를 정확히 알아야합니다. ImageFontWidth () 함수는 지정된 글꼴 크기의 문자 너비를 얻을 수 있도록 매우 실용적인 도구입니다. 따라서 텍스트의 총 폭을 정확하게 계산합니다. 이 기사에서는 ImageFontWidth () 함수를 사용하여 텍스트 너비를 계산하는 방법을 소개하고 GD 라이브러리와 결합하여 텍스트 설명이 포함 된 이미지를 만듭니다.
ImageFontWidth () 는 PHP GD 라이브러리가 제공 한 함수로 지정된 내장 글꼴의 픽셀로 문자 너비를 반환합니다. 이 함수의 매개 변수는 글꼴의 크기 지수이고 값 범위는 일반적으로 1에서 5입니다. 숫자가 클수록 글꼴이 클수록.
int imagefontwidth(int $font);
예를 들어:
$width = imagefontwidth(3);
이 코드는 글꼴 크기가 3 인 각 문자의 너비를 반환합니다.
내장 글꼴의 모든 문자는 너비와 동일하므로 텍스트 문자열의 너비를 계산하는 것은 매우 간단합니다.
$text = "Hello World!";
$font = 3; // 글꼴 크기 지수
$charWidth = imagefontwidth($font);
$textWidth = strlen($text) * $charWidth;
여기서 strlen ()은 문자열 길이를 계산하는 데 사용되며, 단일 문자의 너비를 곱하여 텍스트의 총 너비를 얻습니다.
다음은 GD 라이브러리를 사용하여 설명 텍스트가 포함 된 이미지를 만드는 방법을 보여주는 완전한 예입니다. 텍스트 너비는 ImageFontWidth ()를 사용하여 계산 한 다음 중앙에 표시됩니다.
<?php
// 텍스트와 글꼴 크기를 설정하십시오
$text = "이것은 샘플 텍스트입니다";
$font = 5;
// 텍스트 너비와 높이를 계산합니다
$charWidth = imagefontwidth($font);
$charHeight = imagefontheight($font);
$textWidth = strlen($text) * $charWidth;
$textHeight = $charHeight;
// 캔버스 크기를 만듭니다,너비는 텍스트 너비보다 약간 큽니다,적당한 높이
$imgWidth = $textWidth + 20;
$imgHeight = $textHeight + 20;
$image = imagecreate($imgWidth, $imgHeight);
// 색상을 할당합니다
$bgColor = imagecolorallocate($image, 255, 255, 255); // 흰색 배경
$textColor = imagecolorallocate($image, 0, 0, 0); // 검은 텍스트
// 텍스트의 시작 위치를 계산하십시오,센터링을 실현하십시오
$x = ($imgWidth - $textWidth) / 2;
$y = ($imgHeight - $textHeight) / 2;
// 텍스트를 작성하십시오
imagestring($image, $font, $x, $y, $text, $textColor);
// 출력 이미지
header("Content-Type: image/png");
imagepng($image);
imagedestroy($image);
?>
ImageFontWidth () 및 ImageFonTheight ()를 사용하여 문자 크기를 얻으십시오.
텍스트 길이에 따라 전체 텍스트의 너비와 높이를 계산합니다.
텍스트가 자르지 않도록 텍스트 영역보다 약간 큰 크기의 캔버스를 만듭니다.
수평 및 수직 중심을 달성하기 위해 텍스트 시작점 좌표를 계산합니다.
Imagestring ()을 사용하여 이미지에 텍스트를 작성하십시오.
출력 PNG 사진.
ImageFontWidth ()는 내장 글꼴로 단일 문자의 너비 (픽셀)를 반환합니다.
문자열 길이와 결합하여 총 텍스트 너비를 계산할 수 있습니다.
GD 라이브러리의 다른 기능과 결합하여 텍스트로 이미지를 쉽게 만들 수 있습니다.
정확한 위치를 계산하여 텍스트의 센터링 또는 정렬을 달성합니다.
Mastering ImageFontWidth ()는 특히 동적으로 생성 된 그래픽 컨텐츠를 작성할 때 이미지 워드 프로세싱의 유연성을 크게 향상시킬 수 있습니다.