imagecolorallocatealpha() 함수는 이미지에 알파(투명도) 정보가 포함된 색상을 할당하는 PHP GD 라이브러리 함수입니다. 일반적인 imagecolorallocate() 함수와 달리 색상에 투명도를 함께 지정할 수 있어, 반투명 그래픽이나 겹치는 도형 효과를 만들 때 유용하게 활용됩니다.
문법
imagecolorallocatealpha ( img, red, green, blue, alpha )
매개변수
img: imagecreatetruecolor() 함수로 생성한 이미지 리소스입니다.
red: 빨간색(Red) 색상 구성 요소입니다. (0~255)
green: 초록색(Green) 색상 구성 요소입니다. (0~255)
blue: 파란색(Blue) 색상 구성 요소입니다. (0~255)
alpha: 이미지의 투명도를 나타냅니다. 0은 완전히 불투명한 상태를, 127은 완전히 투명한 상태를 의미합니다.
반환값
imagecolorallocatealpha() 함수는 성공 시 색상 식별자(color identifier)를 반환하고, 색상 할당에 실패하면 FALSE를 반환합니다.
예제
다음은 imagecolorallocatealpha() 함수를 사용하여 서로 다른 색상과 투명도를 가진 네 개의 타원을 겹쳐 그리는 예제입니다.
<?php
$img = imagecreatetruecolor(520, 350);
$bgcolor = imagecolorallocate($img, 50, 10, 255);
imagefill($img, 0, 0, $bgcolor);
$one = imagecolorallocatealpha($img, 50, 255, 0, 70);
$two = imagecolorallocatealpha($img, 255, 0, 255, 50);
$three = imagecolorallocatealpha($img, 150, 255, 0, 60);
$four = imagecolorallocatealpha($img, 200, 0, 255, 90);
imagefilledellipse($img, 200, 150, 150, 150, $one);
imagefilledellipse($img, 220, 150, 150, 150, $two);
imagefilledellipse($img, 240, 150, 150, 150, $three);
imagefilledellipse($img, 280, 150, 150, 150, $four);
header('Content-Type: image/png');
imagepng($img);
imagedestroy($img);
?>
위 코드에서는 먼저 imagecreatetruecolor()로 캔버스를 생성하고 배경색을 채운 뒤, 알파 값이 서로 다른 네 가지 색상을 할당하여 imagefilledellipse()로 타원을 그립니다. 각 타원의 투명도가 다르기 때문에 겹치는 영역이 비쳐 보이는 반투명 효과를 확인할 수 있습니다.
출력 결과
위 예제를 실행하면 다음과 같은 PNG 이미지가 출력됩니다.
