이미지 처리 및 GD imagecolorallocatealpha
(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)
imagecolorallocatealpha — 이미지에 색상 할당
설명
imagecolorallocatealpha( GdImage $image, int $red, int $green, int $blue, int $alpha ): int|false
imagecolorallocatealpha()는 투명도 매개변수 alpha
를 추가하여 imagecolorallocate()와 동일하게 작동합니다.
매개변수
image
- imagecreatetruecolor()와 같은 이미지 생성 함수 중 하나에서 반환되는 GdImage 객체.
red
- 빨간색 구성 요소의 값입니다.
green
- 녹색 구성 요소의 가치.
blue
- 파란색 구성 요소의 값입니다.
alpha
0
에서127
사이의 값입니다.0
은 완전히 불투명함을 나타내고127
은 완전히 투명함을 나타냅니다.
red
, green
및 blue
매개변수는 0에서 255 사이의 정수 또는 0x00에서 0xFF 사이의 16진수입니다.
반환 값
색상 식별자 또는 할당이 실패한 경우 false
입니다.
경고 이 함수는 부울 false
을 반환할 수 있지만 false
으로 평가되는 부울이 아닌 값을 반환할 수도 있습니다. 자세한 내용은 부울 섹션을 참조하세요. 이 함수의 반환 값을 테스트하려면 === 연산자를 사용하십시오.
변경 로그
버전 | 설명 |
---|---|
8.0.0 | image 는 이제 GdImage 인스턴스를 예상합니다. 이전에는 리소스가 필요했습니다. |
Examples
예제 #1 imagecolorallocatealpha() 사용 예
<?php
$size = 300;
$image=imagecreatetruecolor($size, $size);
// something to get a white background with black border
$back = imagecolorallocate($image, 255, 255, 255);
$border = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 0, 0, $size - 1, $size - 1, $back);
imagerectangle($image, 0, 0, $size - 1, $size - 1, $border);
$yellow_x = 100;
$yellow_y = 75;
$red_x = 120;
$red_y = 165;
$blue_x = 187;
$blue_y = 125;
$radius = 150;
// allocate colors with alpha values
$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);
$red = imagecolorallocatealpha($image, 255, 0, 0, 75);
$blue = imagecolorallocatealpha($image, 0, 0, 255, 75);
// drawing 3 overlapped circle
imagefilledellipse($image, $yellow_x, $yellow_y, $radius, $radius, $yellow);
imagefilledellipse($image, $red_x, $red_y, $radius, $radius, $red);
imagefilledellipse($image, $blue_x, $blue_y, $radius, $radius, $blue);
// don't forget to output a correct header!
header('Content-Type: image/png');
// and finally, output the result
imagepng($image);
imagedestroy($image);
?>
위의 예는 다음과 유사한 결과를 출력합니다.
예제 #2 imagecolorallocatealpha()와 함께 사용할 일반적인 알파 값 변환
일반적으로 0
의 알파 값은 완전히 투명한 픽셀을 지정하고 알파 채널은 8비트를 갖습니다. 이러한 알파 값을 imagecolorallocatealpha()와 호환되도록 변환하려면 몇 가지 간단한 산술로 충분합니다.
<?php
$alpha8 = 0; // fully transparent
var_dump(127 - ($alpha8 >> 1));
$alpha8 = 255; // fully opaque
var_dump(127 - ($alpha8 >> 1));
?>
위의 예는 다음을 출력합니다.
int(127) int(0)
기타
- imagecolorallocate() - 이미지에 색상 할당
- imagecolordeallocate() - 이미지의 색상 할당 해제