Categories
PHP

PHP 에서 이미지에 한글 (배달의민족 을지로체 폰트) 텍스트 추가하기

1. 한글 폰트 준비하기

다음 링크를 클릭하여 배달의민족 을지로체 폰트 (font) 다운로드 페이지를 연다.

https://www.utoimage.com/?m=goods.free&mode=view&idx=21582257

TTF 버튼을 클릭하여 폰트 파일을 다운로드한다.

폰트 파일의 이름은 ‘xxxxxxxx_배민을지로체_TTF.ttf’ 이다. 이 이름을 eul-ji-ro.ttf 와 같이 짧게 변경한다.

폰트 파일을 PHP 소스 파일이 있는 디렉토리로 복사한다.

2. 이미지 오브젝트 생성

트루 컬러 (true color) 이미지 오브젝트 (object) 를 생성한다.

$im = imagecreatetruecolor(640, 480);

색상 식별자 (identifier) 에 검정색을 할당한다.

$black = imagecolorallocate($im, 0, 0, 0);

색상 식별자 (identifier) 에 흰색을 할당한다.

$white = imagecolorallocate($im, 255, 255, 255);

이미지의 배경을 검정색으로 채운다.

imagefilledrectangle($im, 0, 0, 639, 479, $black);

3. 이미지에 한글 텍스트 추가하기

폰트의 크기를 지정한다.

$size = 75;

텍스트가 표시되는 각도를 도 단위로 지정한다. 0 도일 때 텍스트가 수평으로 표시된다.

$angle = 37;

텍스트 시작 위치의 X 좌표를 지정한다.

$x = 120;

텍스트 시작 위치의 Y 좌표를 지정한다.

$y = 430;

앞에서 준비한 폰트 파일의 경로를 지정한다.

$font_filename = ‘./eul-ji-ro.ttf’;

텍스트의 내용을 지정한다.

$text = “배민 을지로체”;

텍스트를 이미지에 쓴다. imagettftext() 함수를 사용한다.

imagettftext($im, $size, $angle, $x, $y, $white, $font_filename, $text);

텍스트가 추가된 이미지는 다음과 같다.

4. 브라우저에 이미지 출력하기

이미지 출력을 위한 HTTP 헤더를 보낸다.

header(‘Content-type: image/png’);

브라우저에 이미지를 출력한다.

imagepng($im);

이미지 오브젝트를 메모리에서 클리어 (clear) 한다.

imagedestroy($im);

5. 전체 PHP 소스 코드

<?php
$im = imagecreatetruecolor(640, 480);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);
imagefilledrectangle($im, 0, 0, 639, 479, $black);

$size = 75;
$angle = 37;
$x = 120;
$y = 430;
$font_filename = './eul-ji-ro.ttf';
$text = "배민 을지로체";
imagettftext($im, $size, $angle, $x, $y, $white, $font_filename, $text);

header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

Leave a Reply

Your email address will not be published. Required fields are marked *