PHP에서는 종종 GD 라이브러리를 사용하여 이미지를 처리 할 때 이미지를 만들고 수정합니다. GD 라이브러리는 이미지의 색상, 투명성, 그래픽 그리기 등을 설정할 수있는 많은 기능을 제공합니다. imagecolorallocatealpha () 와 ImagesAvealpha () 는 특히 투명한 효과를 가진 이미지를 처리해야 할 때 매우 중요한 기능 중 두 가지입니다.
imagecolorallocatealpha ()는 이미지에 색상을 할당하는 데 사용되는 함수입니다. 그 목적은 이미지에 색상을 지정하고 해당 색상의 투명성을 설정하도록하는 것입니다. 이 함수의 구문은 다음과 같습니다.
imagecolorallocatealpha(resource $image, int $red, int $green, int $blue, int $alpha): int
$ 이미지 : 대상 이미지 리소스.
$ 빨간색 : 색상의 빨간색 구성 요소 (0-255).
$ Green : 색상의 녹색 구성 요소 (0-255).
$ blue : 색상의 파란색 구성 요소 (0-255).
$ Alpha : 색상의 투명성 (0은 완전히 불투명하고 127은 완전히 투명합니다).
imagecolorallocatealpha ()를 사용하면 투명성이있는 색상이 생성 될 수 있으며, 이는 PNG와 같은 투명한 형식을 다룰 때 매우 유용합니다.
ImagesVealpha ()는 PHP 이미지를 전달하는 데 사용되는 함수입니다. 이미지에서 투명성을 사용하는 경우 ImagesAvealpha ()를 호출하여 투명성 절약을 가능하게해야합니다. 그렇지 않으면 투명성 효과가 손실됩니다.
imagesavealpha () 의 구문은 다음과 같습니다.
imagesavealpha(resource $image, bool $saveflag): bool
$ 이미지 : 대상 이미지 리소스.
$ saveflag : true가 있으면 투명도를 저장합니다. False 인 경우 비활성화하십시오.
imageColoralLocateAlpha ()를 사용하는 경우 이미지에 투명성이있는 색상을 할당하지만 ImagesAvealpha ()가 호출되지 않으면 PHP는 이미지의 투명성 정보를 이미지 파일에 저장하지 않습니다. 이런 식으로, 우리가 색상의 투명성을 지정하더라도 이미지는이 투명성 정보가 최종적으로 저장 될 때이 투명성 정보를 포함하지 않으므로 투명성 효과가 무효화됩니다.
간단한 예를 들어, PNG 이미지를 만들고 imagecolorallocatealpha ()를 사용하여 반투명 배경색을 할당한다고 가정 해 봅시다. 이미지를 저장하기 전에 ImagesAvealpha ()가 호출되지 않으면 저장된 이미지는 불투명 한 배경을 표시 할 수 있고 투명성 효과가 완전히 손실됩니다. 투명성 절약이 가능하지 않기 때문입니다.
다음은 imagecolorallocatealpha () 및 ImagesAvealpha ()를 올바르게 사용하는 방법을 보여주는 간단한 PHP 예입니다.
<?php
// 빈 이미지 리소스를 만듭니다,크기는입니다 200x200 픽셀
$image = imagecreatetruecolor(200, 200);
// 이미지가 투명성 정보를 저장할 수 있습니다
imagesavealpha($image, true);
// 반투명 색상을 할당하십시오(빨간색,투명성입니다 50%)
$color = imagecolorallocatealpha($image, 255, 0, 0, 64);
// 이 색상을 사용하여 배경을 채우십시오
imagefill($image, 0, 0, $color);
// 이미지를 다음과 같이 저장하십시오 PNG 체재,투명하게 유지하십시오
imagepng($image, 'output.png');
// 자원을 자유롭게합니다
imagedestroy($image);
?>
이 예에서는 먼저 ImagesAvealpha ()를 사용하여 투명성 저장을 활성화 한 다음 imageColoralLocateAlpha ()를 사용하여 반투명 빨간색을 할당 한 다음 이미지를 PNG 형식으로 저장합니다. imagesAvealpha ()를 호출하지 않으면 저장된 이미지는 투명성 효과를 잃게됩니다.
ImageColoralLocateAlpha () 로 투명한 색상을 설정할 때는 ImagesAvealpha ()가 동시에 호출되어 투명성을 올바르게 저장할 수 있는지 확인하십시오. 이 단계가 무시되면 투명한 효과가 적용되지 않으며 이미지의 투명 영역은 불투명 한 배경으로 채워집니다. 이 두 기능을 올바르게 사용하면 이미지 처리 중에 투명한 효과가 부드럽게 달성 될 수 있습니다.