[PHP] 폰트를 이용한 텍스트 이미지 생성
위 이미지처럼 회사의 연혁 페이지를 만들다보면 연도를 이미지로 만들어야 하는 경우가 있다. 특정 회사의 연혁만
보여주는 페이지라면 문제가 없겠으나 여러 업체의 연혁을 보여주는 페이지라면 연도 이미지를 미리 만들어야 한다.
근데 그런 것은 왠지 또 싫고 해서 PHP로 연도 이미지를 직접 만들 수 있는 방법을 검색하게 되었다. 의외로 쉬웠다.
아래 코드는 PHP 사이트에 나온 예제 코드이다. 이것을 이용해서 무사히 년도 이미지를 만들 수 있었다.
// Set the content-type
header(‘Content-Type: image/png’);
// Create the image
// 년도 이미지의 가로, 세로 사이즈를 지정해준다.
$im = imagecreatetruecolor(130, 36);
// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
// 년도 이미지에 사용할 color를 RGB 순으으로 입력
$color = imagecolorallocate($im, 204, 210, 228);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 129, 35, $white);
// 위의 129, 35는 이미지 사이즈에서 각각 1을 뺀 값이다.
// The text to draw
$year = $_GET[year];
// Replace path by your own font path
// 폰트 경로를 지정해준다.
$font = ‘./font/arial.ttf’;
// Add some shadow to the text
imagettftext($im, 36, 0, 0, 35, $color, $font, $year);
// imagettftext(이미지, 텍스트사이즈, 각도, x좌표, y좌표, 색, 폰트파일, 텍스트) 순으로 입력
// x좌표, y좌표 값은 텍스트의 왼쪽 아래를 기준으로 설정한다.
// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>
위 내용으로 php 파일을 저장한 후 실제 이미지가 보여질 곳에서 <img src=’./year.php?year=2011′ />와 같이
코드를 작성해주면 2011 이라는 연도 이미지가 자동으로 생성된다. 일단 정상적으로 작동은 되는데 이게 맞는 건지
자신은 없다. 익스플로러9, 6 그리고 파이어폭스 4에서 테스트 했는데 모두 이상없이 작동했다.