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 파일을 브라우저로 읽어들인다. 브라우저에 이미지가 표시되는지 확인해 보자.