imagestring() 함수는 PHP에 내장된 함수로, 이미지 위에 문자열을 가로 방향으로 그릴 때 사용합니다. GD 라이브러리를 통해 제공되며, 별도의 폰트 파일 없이 내장 폰트만으로 간단하게 텍스트를 출력할 수 있어 캡차 이미지, 간단한 배너 생성 등에 유용하게 활용됩니다.
문법
bool imagestring($image, $font, $x, $y, $string, $color)
매개변수
imagestring() 함수는 $image, $font, $x, $y, $string, $color 총 6개의 매개변수를 받습니다.
$image − 작업 대상이 되는 이미지 리소스입니다. 주로
imagecreatetruecolor()또는imagecreate()함수를 사용해 지정한 크기의 빈 이미지를 생성하여 전달합니다.$font − 사용할 내장 폰트의 크기를 설정합니다. 1부터 5까지의 값을 가질 수 있으며, 숫자가 클수록 글자가 커집니다.
$x − 문자열이 시작될 위치의 X축(가로) 좌표입니다. 이미지의 왼쪽 상단 모서리를 기준(0, 0)으로 합니다.
$y − 문자열이 시작될 위치의 Y축(세로) 좌표입니다. 마찬가지로 이미지의 최상단을 기준으로 합니다.
$string − 이미지에 그릴 실제 문자열(텍스트)입니다.
$color − 문자열에 적용할 색상입니다. 일반적으로
imagecolorallocate()함수로 생성한 색상 식별자를 사용합니다.
반환 값
imagestring()은 성공 시 true, 실패 시 false를 반환합니다.
예제 1
<?php
// imagecreate() 함수로 이미지 크기를 지정하여 빈 이미지를 생성합니다.
$img = imagecreate(700, 300);
// 이미지의 배경색을 설정합니다.
$background_color = imagecolorallocate($img, 0, 0, 255);
// 이미지의 텍스트 색상을 설정합니다.
$text_color = imagecolorallocate($img, 255, 255, 255);
// 문자열이 포함된 이미지를 생성하는 함수입니다.
imagestring($img, 50, 180, 150, "Tutorialspoint", $text_color);
imagestring($img, 30, 160, 120, "Simply Easy Learning", $text_color);
header("Content-Type: image/png");
imagepng($img);
imagedestroy($img);
?>
실행 결과

위 예제에서는 파란색 배경 위에 흰색 텍스트 두 줄을 서로 다른 좌표와 크기로 출력했습니다. header("Content-Type: image/png")를 지정하면 브라우저에서 결과가 PNG 이미지로 바로 표시됩니다.
예제 2
<?php
// 이미지 크기를 지정하여 빈 이미지를 생성합니다.
$img = imagecreate(700, 300);
// 이미지의 배경색을 설정합니다.
$background_color = imagecolorallocate($img, 122, 122, 122);
// 이미지의 텍스트 색상을 설정합니다.
$text_color = imagecolorallocate($img, 255, 255, 0);
// 문자열이 포함된 이미지를 생성하는 함수입니다.
imagestring($img, 10, 30, 60,"Tutorialspoint:Simply Easy Learning", $text_color);
header("Content-Type: image/png");
imagepng($img);
imagedestroy($img);
?>
실행 결과

두 번째 예제는 회색 배경 위에 노란색 텍스트를 한 줄 출력합니다. 이처럼 imagestring() 함수를 사용하면 몇 줄의 코드만으로 원하는 위치에 원하는 색상의 텍스트를 포함한 이미지를 손쉽게 만들 수 있습니다. 작업이 끝난 후에는 imagedestroy()를 호출하여 메모리를 해제하는 것이 좋습니다.