PHP에서 imagecolorallocatealpha () 함수는 생성 된 이미지에 투명성을 가진 색상을 할당하는 데 사용됩니다. 특히 PNG 이미지 또는 알파 채널을 지원하는 이미지로 작업 할 때 투명한 이미지를 처리하는 데 일반적으로 사용되는 기능입니다.
int imagecolorallocatealpha(resource $image, int $red, int $green, int $blue, int $alpha)
$ image : 이미지 리소스, 일반적으로 imageCreate () 또는 imageCreateFrom*() 함수에 의해 생성 된 이미지입니다.
$ RED , $ GREEN , $ BLUE : 각각 0에서 255 사이의 색상의 빨간색, 녹색 및 파란색 부분을 지정합니다.
$ ALPHA : 0 (완전히 불투명)에서 127 (완전히 투명) 범위의 투명성 값. 투명성 효과는 특정 이미지 유형 (예 : PNG)에서만 나타납니다.
투명성으로 배경 이미지를 만들고 이미지에 투명한 색상이있는 사각형을 그려보십시오. 간단한 예는 다음과 같습니다.
<?php
// a 200x200 이미지
$image = imagecreatetruecolor(200, 200);
// 이미지의 투명한 배경을 설정하십시오
imagesavealpha($image, true);
$transparency = imagecolorallocatealpha($image, 0, 0, 0, 127);
imagefill($image, 0, 0, $transparency);
// 이미지에 대한 반투명 빨간색을 설정하십시오
$red = imagecolorallocatealpha($image, 255, 0, 0, 64);
// 반투명 빨간 사각형을 그립니다
imagefilledrectangle($image, 50, 50, 150, 150, $red);
// 출력 이미지
header('Content-Type: image/png');
imagepng($image);
// 이미지 자원을 파괴하십시오
imagedestroy($image);
?>
이미지 자원 만들기 : imageCreatetRueColor ()를 사용하여 200x200의 빈 이미지를 만듭니다.
알파 채널 정보 저장 : imagesAvealpha ()를 사용하여 알파 채널을 저장할 수 있습니다. 그렇지 않으면 투명성 설정이 유효하지 않습니다.
투명 배경 설정 : 투명성 값이 127 인 imagecolorallocatealpha () 를 통해 이미지에 투명한 색상을 할당하십시오. 즉, 완전히 투명합니다. 그런 다음 이미지 fill ()을 사용하여 전체 이미지의 배경을 투명하게 채 웁니다.
반투명 빨간색 설정 : imagecolorallocatealpha () 를 사용하여 알파 값이 64 인 반투명 빨간색을 할당하십시오 (값이 작을수록 투명도가 높음).
직사각형을 그리십시오 : ImageFilledRectangle () 에 의해 반투명 빨간색으로 사각형을 그립니다.
출력 이미지 : ImagePng ()을 사용하여 이미지를 출력하고 컨텐츠 유형을 이미지/PNG 로 설정하여 브라우저가 이미지를 올바르게 표시 할 수 있도록하십시오.
자원 파괴 : imageStroy () 를 통해 이미지 리소스를 파괴하고 메모리를 자유롭게합니다.
imagecolorallocatealpha ()를 사용하여 투명성을 설정할 때 이미지는 알파 채널 (예 : PNG)을 지원하는 유형이어야합니다. JPEG 형식은 투명성을 지원하지 않습니다.
투명성 효과는 브라우저에 표시 될 때 브라우저의 캐시 또는 렌더링 설정의 영향을받을 수 있습니다.
이미지 크기, 투명성 및 색상 선택이 최종 이미지 효과의 요구를 충족하는지 확인하십시오.
imagecolorallocatealpha ()를 사용하여 이미지에 완전히 투명한 색상을 할당하고 전체 이미지를 ImageFill () 으로 채울 수 있습니다. 예를 들어:
$transparent = imagecolorallocatealpha($image, 0, 0, 0, 127);
imagefill($image, 0, 0, $transparent);
imagecolorallocatealpha () 에서 만든 색상을 텍스트에 적용 할 수 있습니다. 예를 들어:
$white = imagecolorallocatealpha($image, 255, 255, 255, 64);
imagestring($image, 5, 50, 50, 'Hello, World!', $white);
imagecolorallocatealpha ()를 사용하면 이미지의 투명성을 설정하고 다양한 정도의 투명성을 달성 할 수 있습니다. 이것은 수상, 투명한 아이콘 또는 반 트랜스 펜트 효과가 필요한 기타 이미지를 만드는 데 매우 유용합니다. 이 기능을 마스터하면 이미지를보다 유연하게 조작 할 수 있습니다.