최초 작성일 : 2023-05-11 | 수정일 : 2023-05-11 | 조회수 : 646 |
PHP의 GD 라이브러리는 동적 이미지를 생성하고 조작하는 데 사용됩니다. GD 라이브러리를 사용하려면 PHP가 GD를 지원하도록 구성되어 있어야 합니다. PHP 설치 시에 --with-gd
옵션을 사용하여 GD를 활성화할 수 있습니다.
다음은 PHP와 GD 라이브러리를 이용해 간단한 이미지를 생성하는 예제입니다:
php<?php
// 새로운 이미지를 생성합니다. 이미지의 크기는 500x300 픽셀입니다.
$image = imagecreatetruecolor(500, 300);
// 이미지에 색상을 추가합니다. 이 예제에서는 흰색 배경과 검은색 텍스트를 사용합니다.
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);
// 이미지의 배경을 흰색으로 설정합니다.
imagefilledrectangle($image, 0, 0, 499, 299, $white);
// 이미지에 텍스트를 추가합니다.
$text = 'Hello, World!';
$font = dirname(__FILE__) . '/arial.ttf';
// 사용할 폰트의 경로를 지정합니다.
imagettftext($image, 20, 0, 10, 50, $black, $font, $text);
// 이미지를 브라우저에 출력하기 전에, 적절한 헤더를 전송해야 합니다.
header('Content-Type: image/png');
// 이미지를 PNG 형식으로 출력하고, 메모리에서 이미지를 제거합니다.
imagepng($image);
imagedestroy($image);
?>
위의 코드는 다음과 같은 작업을 수행합니다:
imagecreatetruecolor
함수를 호출하여 새로운 이미지를 생성합니다.imagecolorallocate
함수를 사용하여 이미지에 사용될 색상을 할당합니다. 이 함수는 RGB (Red, Green, Blue) 값의 범위가 0~255인 색상을 생성합니다.imagefilledrectangle
함수를 사용하여 이미지 전체를 흰색으로 채웁니다.imagettftext
함수를 사용하여 이미지에 텍스트를 추가합니다. 이 함수는 텍스트의 크기, 위치, 색상, 폰트를 지정합니다.header
함수를 사용하여 브라우저에 적절한 헤더를 전송합니다. 이 예제에서는 이미지가 PNG 형식이므로 'Content-Type: image/png' 헤더를 전송합니다.imagepng
함수를 호출하여 이미지를 출력합니다.imagedestroy
함수를 호출하여 메모리에서 이미지를 제거합니다.이 예제에서는 이미지에 텍스트를 추가하기 위해 TrueType 폰트를 사용했습니다. 사용할 폰트 파일의 경로를 imagettftext
함수에 전달해야 합니다.
참고로, 이 예제에서 사용한 모든 GD 함수들은 이미지 리소스를 첫 번째 인자로 받습니다. 이 이미지 리소스는 imagecreatetruecolor
함수가 반환하는 값입니다. 이 값은 GD 라이브러리가 내부적으로 이미지를 추적하고 조작하는 데 사용합니다.
또한, 이미지를 생성하거나 조작한 후에는 항상 imagedestroy
함수를 호출하여 메모리에서 이미지를 제거해야 합니다. 이 작업을 하지 않으면 메모리 누수가 발생할 수 있습니다.
이와 같은 방식으로 GD 라이브러리를 사용하여 이미지를 생성하고, 그 위에 선을 그리거나, 도형을 그리거나, 이미지를 회전시키는 등의 다양한 작업을 수행할 수 있습니다.
이러한 기능을 이용하면 사용자가 업로드한 이미지를 서버 측에서 동적으로 조작하거나, 캡차 이미지를 생성하거나, 통계 데이터를 그래프로 표현하는 등의 다양한 웹 애플리케이션을 구현할 수 있습니다.