이미지 처리 및 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, greenblue 매개변수는 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);
?>
                  
                

위의 예는 다음과 유사한 결과를 출력합니다.

function imagecolorallocatealpha

예제 #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)
                

기타