PHP에서 GD 라이브러리는 이미지를 처리 할 때 종종 사용되며 글꼴 관련 기능 ImageFontWidth () 는 매우 일반적인 기능입니다. 지정된 글꼴의 너비를 얻는 데 도움이되므로 텍스트를 그리시 레이아웃을 정확하게 제어 할 수 있습니다. 그러나 많은 개발자가 ImageFontWidth ()를 사용할 때 질문을 할 것입니다. 너비는 "픽셀"또는 "문자"단위로 반환됩니까? 이 함수의 너비 단위를 정확하게 이해하는 방법은 무엇입니까?
이 기사는 PHP 함수 ImageFontWidth () 의 작동 원리와 폭 단위의 의미를 깊이 분석하여 이미지 워드 프로세싱에 더 잘 사용할 수 있도록합니다.
ImageFontWidth () 함수는 지정된 내장 글꼴 (즉, GD 라이브러리로 사전 정의 된 글꼴)에 대해 단일 문자의 너비를 얻는 데 사용됩니다. 기능 프로토 타입은 다음과 같습니다.
int imagefontwidth ( int $font )
$ font는 GD 라이브러리의 내장 글꼴 수를 나타내는 정수이며, 일반적으로 1에서 5까지입니다.
리턴 값은 글꼴에서 단일 문자의 너비이고 장치는 픽셀 입니다.
간단히 말해서,이 기능을 호출하면이 글꼴로 캐릭터를 그리시 폭이 얼마나 많은지 알 수 있습니다.
ImageFontWidth ()는 픽셀에서 너비를 반환합니다. 이것은 다음을 의미합니다.
너비는 여러 문자가 아니며 많은 점도 아닙니다.
너비는 이미지 픽셀의 실제 너비로 이미지 좌표 시스템에서 직접 사용하기에 편리합니다.
예를 들어:
<?php
$font = 3; // 내장 글꼴3
$width = imagefontwidth($font);
echo "세례반3문자 너비는입니다:{$width} 픽셀";
?>
출력은 다음과 같습니다.
세례반3문자 너비는입니다:7 픽셀
이것은 글꼴 3으로 캐릭터를 그릴 때 7 픽셀의 수평 공간을 차지함을 보여줍니다.
ImageFontWidth () 는 픽셀 너비를 반환하므로 문자 수와 함께 전체 텍스트의 너비를 계산할 수 있습니다. 예를 들어 문자열 "hello" 를 그립니다.
<?php
$font = 3;
$text = "Hello";
$char_width = imagefontwidth($font);
$text_width = $char_width * strlen($text);
echo "문자열 너비는입니다:{$text_width} 픽셀";
?>
여기서 문자열 길이 strlen ($ 텍스트) 에 전체 문자열의 너비를 얻으려면 이미지 캔버스 크기를 설정하거나 텍스트의 시작점을 위치시키는 것이 편리합니다.
참고 : 이것은 무료 글꼴 (TTF)이 아닌 GD 라이브러리 ( imagestring () 함수에 사용 된 글꼴) 또는 imageTtfText ()를 사용하는 장면의 내장 글꼴에 적용됩니다. TTF 글꼴 폭을 계산하려면 다른 방법이 필요합니다.
다음은 내장 글꼴로 텍스트를 그리는 방법에 대한 완전한 예입니다. ImageFontWidth () 를 기반으로 텍스트 너비를 동적으로 계산하여 적절한 이미지 크기를 만듭니다.
<?php
// 选择내장 글꼴
$font = 4;
$text = "PHP Font Width";
// 단일 문자 너비와 높이를 얻으십시오
$char_width = imagefontwidth($font);
$char_height = imagefontheight($font);
// 문자열의 총 너비와 높이를 계산하십시오
$text_width = $char_width * strlen($text);
$text_height = $char_height;
// 이미지 캔버스를 만듭니다,너비에 약간의 여백을 남겨 두십시오
$image = imagecreate($text_width + 20, $text_height + 20);
// 색상 설정
$bg_color = imagecolorallocate($image, 255, 255, 255); // 흰색 배경
$text_color = imagecolorallocate($image, 0, 0, 0); // 검은 텍스트
// 문자열을 그립니다,위치(10,10)보장 된 마진
imagestring($image, $font, 10, 10, $text, $text_color);
// 브라우저에 이미지를 출력합니다
header("Content-Type: image/png");
imagepng($image);
imagedestroy($image);
?>
이 예에서 :
ImageFontWidth () 및 ImageFonTheight ()를 사용하여 문자의 너비와 높이를 얻으십시오 (픽셀 모두).
스트링 길이에 따라 필요한 캔버스 너비를 계산하십시오.
텍스트를 그린 후 생성 된 이미지 크기는 텍스트 표시에 적합합니다.
<code> 태그에 코드를 작성하고 코드에서 URL을 사용해야하는 경우 도메인 이름을 M66.net 으로 바꾸십시오.
$url = "https://m66.net/path/to/resource";
이를 통해 기사의 코드 예제의 도메인 이름이 일관되게 보장합니다.
ImageFontWidth () 함수는 단일 문자의 너비를 반환하고 장치는 픽셀 입니다.
너비는 문자 수가 아니라 이미지의 문자의 실제 픽셀 너비입니다.
문자 수와 결합하여 문자열의 전체 너비를 계산하여 이미지를 쉽게 그리고 입력 할 수 있습니다.
Truetype 글꼴이 아닌 GD 내장 글꼴에만 적용됩니다.
이를 이해하면 이미지 텍스트의 레이아웃을보다 정확하게 제어하고 PHP 이미지 처리의 품질을 향상시키는 데 도움이됩니다.