PHP의 GD 라이브러리는 이미지 처리를위한 강력한 도구이며, 이미지 생성, 텍스트 추가, 도면 모양 등과 같은 이미지를 처리하기위한 다양한 기능을 제공합니다.이 중에서도 이미지 투명도 를 처리하는 데 사용되는 두 가지 중요한 기능입니다. 그러나 ImageColoralLocateAlpha ()를 사용할 때 ImageAlphableending ( )이 올바르게 호출되지 않으면 예상치 못한 이미지 표시 문제가 발생할 수 있습니다.
ImageColoralLocateAlpha () 함수는 투명성 색상의 이미지를 할당하는 데 사용됩니다. 기능의 프로토 타입은 다음과 같습니다.
int imagecolorallocatealpha ( resource $image , int $red , int $green , int $blue , int $alpha )
안에:
$ 이미지 : 대상 이미지 리소스.
$ RED , $ GREEN , $ BLUE : 색상의 빨간색, 녹색 및 파란색 구성 요소 (0-255).
$ alpha : 투명성, 0은 완전히 불투명하며 127은 완전히 투명한 것을 의미합니다.
ImageAlphableending () 함수는 이미지의 알파 블렌딩 모드를 제어하는 데 사용됩니다. 그 기능은 이미지의 색상이 투명도 값을 기반으로 배경 이미지와 혼합되어야하는지 여부를 결정하는 것입니다. 기본적으로 PHP GD 라이브러리는 이미지의 색상을 배경 이미지 투명성과 혼합합니다. 프로토 타입은 다음과 같습니다.
bool imagealphablending ( resource $image , bool $blendmode )
안에:
$ 이미지 : 대상 이미지 리소스.
$ blendmode : 부울 값, 혼합 모드를 활성화하는 진정한 수단, 비활성화하는 거짓 수단.
투명성 및 블렌딩 모드는 이미지로 작업 할 때 매우 밀접한 관련 개념입니다. ImageColarallocatealpha ()를 사용하여 투명성으로 색상을 할당 할 때 ImageAlphableending () 가 올바르게 활성화되지 않으면 이미지의 색상이 예상대로 투명하게 혼합되지 않을 수 있습니다. 구체적으로, 색상은 예상되는 투명성 효과를 무시하고 완전히 불투명하게 렌더링됩니다.
기본적으로 GD 라이브러리의 이미지 처리 기능은 불투명 한 방식으로 이미지를 처리하므로 모든 색상이 배경을 완전히 다루게됩니다. ImageColoralLocateAlpha () 자체는 단순히 색상을 할당하고 투명성을 지정하지만 투명도를 처리 할 수있는 블렌딩 모드를 자동으로 활성화하지는 않습니다. 따라서, ImageAlphableending (true) 이 블렌딩 모드를 활성화하기 위해 호출되지 않으면 이미지는 투명성을 무시하고 해당 색상을 완전히 불투명 한 색상으로 그립니다.
이미지의 투명성을 올바르게 처리하려면 다음을 수행해야합니다.
<?php
// 빈 이미지를 만듭니다
$image = imagecreatetruecolor(200, 200);
// 열려 있는 alpha 통로
imagealphablending($image, false); // 기본값을 비활성화합니다 alpha 혼합 모드
// 투명성으로 색상을 할당하십시오
$transparent_color = imagecolorallocatealpha($image, 255, 0, 0, 50); // 빨간색,투명성입니다 50
// 이 색상을 사용하여 그리십시오
imagefill($image, 0, 0, $transparent_color);
// 이미지를 생성하고 표시합니다
header("Content-type: image/png");
imagepng($image);
imagedestroy($image);
?>
위 코드에서 :
우리는 먼저 이미지 리소스를 만들었습니다.
그런 다음 기본 알파 블렌딩 모드 ( ImageAlphableDing ($ image, false) )이 비활성화되어 투명도가 혼합되지 않도록합니다.
그런 다음 imagecolorallocatealpha ()를 사용하여 이미지에 투명성이있는 색상을 할당합니다.
마지막으로 이미지를 채우고 이미지를 출력합니다.
ImageAlphableending ()을 부르거나 잘못 설정하는 것을 잊어 버리면 다음과 같은 문제가 발생할 수 있습니다.
이미지의 투명 부분이 불투명하게 표시되어 디스플레이 효과가 잘못되었습니다.
배경은 투명 영역과 올바르게 혼합되지 않으므로 이미지가 예상보다 덜 표시됩니다.
ImageColorallocatealpha ()를 사용하는 경우 imagealphableding ()가 호출되고 블렌딩 모드가 올바르게 설정되도록하는 것이 중요합니다. 이미지의 투명성과 블렌딩 모드를 올바르게 제어하면보다 세련된 이미지 효과를 얻을 수 있습니다. 이 기사가 이러한 이미지 처리 기능을 더 잘 이해하고 사용하는 데 도움이되기를 바랍니다.
PHP 이미지 처리에 대해 자세히 알아 보려면 다음 링크를 참조하십시오.