Categories
PHP

PHP GD 라이브러리를 이용하여 이미지를 생성하고 출력하기

PHP 의 이미지 작업은 새로운 캔버스를 생성하는 것으로 시작한다.

$canvas = imagecreate(400, 300);

400 과 300 은 이미지의 폭과 높이이다. 단위는 픽셀이다.

이미지에 색상을 할당하는 함수는 imagecolorallocate() 이다.

int imagecolorallocate( GdImage $image, int $red, int $green, int $blue )

이 함수는 GdImage 리소스와 RGB 색상값을 인자로 받아 색상 식별자를 리턴한다. RGB 색상값의 범위는 0 ~ 255 이다.

$red = imagecolorallocate($canvas, 255, 0, 0);

$green = imagecolorallocate($canvas, 0, 255, 0);

$blue = imagecolorallocate($canvas, 0, 0, 255);

이미지에 픽셀 한 개를 그려 보자.

캔버스를 생성한다.

$canvas = imagecreate(400, 300);

캔버스의 배경이 검정색이 되게 한다.

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

imagecolorallocate() 함수는 첫번째 호출 시에는 특별하게 동작한다. 색상 식별자를 리턴하는 동시에 해당 색상으로 캔버스의 배경을 채운다.

$white 색상 식별자에 흰색을 지정한다.

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

캔버스의 (100, 100) 위치에 픽셀 하나를 그린다. 픽셀의 색상은 흰색이다.

imagesetpixel($canvas, 100, 100, $white);

출력 내용이 PNG 이미지라는 정보를 HTTP 헤더에 기록한다.

header(“Content-type: image/png”);

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

imagepng($canvas);

PNG 이미지를 파일로 저장할 수도 있다. 아래와 같이 저장 경로와 파일 이름을 지정하면 된다.

imagepng($canvas, ‘images/dot.png’);

이미지 리소스를 삭제한다.

imagedestroy($canvas);

이상의 내용을 정리하여 pixel.php 라는 파일에 저장한다. 다음은 pixel.php 파일의 전체 내용이다.

<?php
$canvas = imagecreate(400, 300);
$black = imagecolorallocate($canvas, 0, 0, 0);
$white = imagecolorallocate($canvas, 255, 255, 255);

imagesetpixel($canvas, 100, 100, $white);
header("Content-type: image/png");
imagepng($canvas);
imagedestroy($canvas);
?>

pixel.php 파일을 브라우저로 읽어들인다. 브라우저에 이미지가 표시되는지 확인해 보자.

Leave a Reply

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