imagefontwidth() 함수란?
imagefontwidth()는 PHP의 GD 라이브러리에 내장된 함수로, 지정된 글꼴에서 문자 하나가 차지하는 픽셀 단위의 가로 너비를 구하는 데 사용됩니다. 이미지에 텍스트를 그릴 때 문자열의 전체 크기를 계산하거나 텍스트를 정확하게 배치해야 하는 경우에 유용하게 활용됩니다.
문법(Syntax)
int imagefontwidth(int $font)
매개변수(Parameters)
imagefontwidth()는 하나의 매개변수 $font만 받습니다.
- $font: 너비를 확인할 글꼴 값을 나타냅니다.
- PHP에 기본으로 내장된 글꼴을 사용할 경우 1, 2, 3, 4, 5 중 하나의 값을 지정할 수 있습니다. 숫자가 클수록 더 큰 글꼴이 적용됩니다.
- 사용자 정의(커스텀) 글꼴을 사용하려면 imageloadfont() 함수로 글꼴 파일을 먼저 불러온 뒤, 해당 함수가 반환하는 글꼴 식별자를 $font 값으로 전달하면 됩니다.
반환 값(Return Values)
성공적으로 실행되면 해당 글꼴에서 문자 하나의 픽셀 너비를 정수형(int)으로 반환합니다. 참고로 세로 높이를 구하고 싶다면 같은 방식으로 동작하는 imagefontheight() 함수를 함께 사용하면 됩니다.
예제 1 – 특정 글꼴의 너비 출력하기
<?php
// 글꼴 값은 1부터 5까지 변경할 수 있습니다.
echo 'Font width: ' . imagefontwidth(3);
?>
출력 결과
Font width: 7
글꼴 값 3에 해당하는 내장 글꼴의 문자 너비가 7픽셀임을 확인할 수 있습니다.
예제 2 – 모든 내장 글꼴의 너비 비교하기
<?php
// 글꼴 값을 1부터 5까지 설정하여 각각의 너비를 출력합니다.
echo 'Font width for the font value 1 is '
. imagefontwidth(1) . '<br>';
echo 'Font width for the font value 2 is '
. imagefontwidth(2) . '<br>';
echo 'Font width for the font value 3 is '
. imagefontwidth(3) . '<br>';
echo 'Font width for the font value 4 is '
. imagefontwidth(4) . '<br>';
echo 'Font width for the font value 5 is '
. imagefontwidth(5) . '<br>';
?>
출력 결과
Font width for the font value 1 is 5
Font width for the font value 2 is 6
Font width for the font value 3 is 7
Font width for the font value 4 is 8
Font width for the font value 5 is 9
출력 결과에서 알 수 있듯이, 내장 글꼴 값이 1씩 증가할 때마다 문자의 픽셀 너비도 1픽셀씩 늘어납니다. 즉, 글꼴 값 1은 5픽셀, 값 5는 9픽셀의 너비를 가집니다.
정리
imagefontwidth()는 이미지 처리 작업에서 텍스트의 가로 크기를 미리 계산해야 할 때 필수적인 함수입니다. 내장 글꼴(1~5)뿐만 아니라 imageloadfont()로 불러온 커스텀 글꼴에도 적용할 수 있으며, imagefontheight()와 함께 사용하면 텍스트 영역의 정확한 크기를 계산하여 이미지 위에 깔끔하게 배치할 수 있습니다.