현재 위치: > 최신 기사 목록> PHP의 imagecolorallocatealpha 기능을 사용하여 동적 이미지에서 투명성을 동적으로 변화시키는 방법은 무엇입니까?

PHP의 imagecolorallocatealpha 기능을 사용하여 동적 이미지에서 투명성을 동적으로 변화시키는 방법은 무엇입니까?

M66 2025-06-04

PHP는 역동적으로 생성 된 이미지로 작업 할 때 픽셀, 색상 및 투명성을 조작하는 풍부한 GD 라이브러리 기능을 제공합니다. 그중에서도 imagecolorallocatealpha () 함수는 이미지에 투명성을 가진 색상을 할당하는 데 사용할 수있는 매우 유용한 도구입니다. 이는 반투명 워터 마크를 오버레이하거나 그림자 효과를 만들거나 투명한 영역으로 이미지를 생성해야 할 필요성에 특히 중요합니다.

이 기사에서는 imagecolorallocatealpha ()를 사용하고 샘플 코드를 결합하여 이미지에서 요소의 투명성을 동적으로 조정하는 방법을 보여줍니다.

기능 소개

imagecolorallocatealpha () 의 정의는 다음과 같습니다.

 int imagecolorallocatealpha ( resource $image , int $red , int $green , int $blue , int $alpha )
  • $ 이미지 : imageCreatetRueColor () 에 의해 생성 된 이미지 리소스 핸들.

  • $ RED , $ GREEN , $ BLUE : RGB 색상 구성 요소, 범위 0–255.

  • $ 알파 : 투명성, 범위 0 (완전히 불투명) ~ 127 (완전히 투명).

참고 : PHP의 알파 값과 일반적인 투명성 정의는 반대이며 값이 클수록 투명합니다.

예 : 투명성의 원 모양을 동적으로 변경합니다

다음은 imagecolorallocatealpha ()를 사용하여 동적 이미지에서 조절 가능한 투명성을 가진 원을 그리는 방법을 보여주는 간단한 예입니다.

 <?php
// 컨텐츠 헤더를 설정하십시오,브라우저 출력 PNG 그림
header('Content-Type: image/png');

// a 200x200 진정한 색 캔버스
$width = 200;
$height = 200;
$image = imagecreatetruecolor($width, $height);

// 할 수 있게 하다 alpha 채널 절약
imagesavealpha($image, true);

// a完全透明的背景
$transparent = imagecolorallocatealpha($image, 0, 0, 0, 127);
imagefill($image, 0, 0, $transparent);

// 동적으로 투명성을 설정합니다(여기서 우리는 사용합니다 GET 매개 변수 제어)
$alpha = isset($_GET['alpha']) ? intval($_GET['alpha']) : 50;
if ($alpha < 0) $alpha = 0;
if ($alpha > 127) $alpha = 127;

// 투명성이있는 빨간색을 할당하십시오
$redAlpha = imagecolorallocatealpha($image, 255, 0, 0, $alpha);

// 캔버스 중앙에 원을 그립니다
imagefilledellipse($image, $width / 2, $height / 2, 150, 150, $redAlpha);

// 출력 이미지
imagepng($image);

// 이미지 자원을 파괴하십시오
imagedestroy($image);
?>

Access Example:

 https://m66.net/transparent_circle.php?alpha=30

알파 매개 변수 (0–127)를 조정하여 브라우저의 투명성 변화를 동적으로 볼 수 있습니다.

주목해야 할 것

  1. 알파 채널 활성화 <br> ImagesAvealpha ($ image, true)를 사용하는 것이 필요합니다. 그렇지 않으면 투명 영역이 검은 색으로 채워질 수 있습니다.

  2. 투명한 색상으로 채워진 배경 <br> 기본 배경으로 이미지의 투명 부분이 덮어 쓰지 않도록하기 위해 먼저 배경을 완전히 투명한 색상으로 채 웁니다.

  3. 투명성 방향 <br> CSS와 달리 GD의 투명성 값이 클수록 더 투명합니다. 예를 들어, 0 은 완전히 불투명하고 127 은 완전히 투명합니다.

확장 된 응용 프로그램

  • 동적 워터 마크에 대한 반투명 오버레이를 생성합니다.

  • 그림자 또는 후광 효과로 텍스트를 만듭니다.

  • 웹 페이지 또는 응용 프로그램에 대한 투명 PNG를 생성합니다.

ImageColorallocatealpha () 와 기타 GD 함수 (예 : Imagestring ()imageTtftext () )를 결합하면 복잡한 동적 이미지 효과를 구축하여 웹 사이트의 시각적 표현식을 개선 할 수 있습니다.