현재 위치: > 최신 기사 목록> imagecolorallocatealpha ()와 ImageColorAllother () 혼란

imagecolorallocatealpha ()와 ImageColorAllother () 혼란

M66 2025-05-22

PHP에서, 특히 GD 라이브러리를 사용하여 이미지를 처리 ​​할 때는 이미지에 색상을 할당해야합니다. ImageColorAllocate ()imageColoralLocateAlpha () 는 색상을 할당하는 데 일반적으로 사용되는 두 가지 기능이지만 많은 사람들이 초보자가 언제 궁금해 할 것입니까? 그들 사이의 차이점은 무엇입니까? 왜 그들을 구별해야합니까? 이 기사는 귀하를 위해 자세히 분석합니다.

1 ??? 기본 이해 : imageColorAllother () 란 무엇입니까?

imageColorAllocate () 는 PHP GD 라이브러리의 함수이며 RGB 색상을 이미지에 할당하는 데 사용됩니다.

기본 사용량은 다음과 같습니다.

 <?php
$img = imagecreatetruecolor(200, 200);
$red = imagecolorallocate($img, 255, 0, 0); // 빨간색
imagefill($img, 0, 0, $red);
imagepng($img, 'https://m66.net/output.png');
imagedestroy($img);
?>

네 가지 매개 변수를 수용합니다.

  • $ IMG : 이미지 리소스;

  • $ 빨간색 : 빨간색 성분 (0–255);

  • $ 녹색 : 녹색 성분 (0–255);

  • $ Blue : 파란색 성분 (0–255).

이러한 방식으로 할당 된 색상은 투명성이없는 단색 이며, 완전히 불투명 해야하는 장면에 적합합니다.

2 ?? imagecolorallocatealpha () 란 무엇입니까?

ImageColoralLocateAlpha ()imageColorAllocate ()을 기반으로 한 향상된 버전으로 투명성 (알파 채널)을 지정할 수 있습니다.

매개 변수는 다음과 같습니다.

  • $ IMG : 이미지 리소스;

  • $ 빨간색 : 빨간색 성분 (0–255);

  • $ 녹색 : 녹색 성분 (0–255);

  • $ Blue : 파란색 성분 (0–255);

  • $ alpha : 투명성 (0–127), 0은 완전히 불투명하고 127을 의미한다는 것을 의미합니다.

예를 들어:

 <?php
$img = imagecreatetruecolor(200, 200);
imagesavealpha($img, true); // 저장을 활성화하십시오 alpha 통로
$transparentRed = imagecolorallocatealpha($img, 255, 0, 0, 63); // 半透明빨간색
imagefill($img, 0, 0, $transparentRed);
imagepng($img, 'https://m66.net/output_transparent.png');
imagedestroy($img);
?>

ImagesAvealpha ()는 여기에 중요하며, PNG 투명성 정보는 그없이 생성 된 PNG 투명성 정보가 손실됩니다.

3 ???? 핵심 차이는 무엇입니까?

특징 imageColorAllother () imagecolorallocatealpha ()
투명성이 지원되는지 여부 지원되지 않고 불투명 한 색상 만 지지대, 네 번째 매개 변수는 투명성을 정의합니다
사용 일반 컬러 블록, 선, 텍스트 등을 그리십시오. 투명하거나 반투명 한 효과가 필요한 요소를 그립니다
투명성 값 범위 없음 0 (불투명) - 127 (최대 투명)

다시 말해, 이미지에 일반 색상을 그려야하는 경우 (완전히 불투명) imageColorAllocate ()를 사용하면 충분합니다. 그리고 투명한 배경 또는 반투명 오버레이 효과를 가진 PNG를 만드는 것과 같은 투명한 효과가있는 그래프를 그려 보려면 imagecolorallocatealpha ()를 사용해야합니다.

4 ?? 왜 그들을 구별합니까?

주된 이유는 다음과 같습니다.

  • 효율성 문제 : 불투명 색상의 계산 및 저장은 투명성이있는 것보다 간단합니다.

  • 호환성 문제 : 일부 출력 형식 (예 : JPEG)은 그 자체로 투명성을 지원하지 않으므로 투명한 색상을 사용하는 것은 의미가 없습니다.

  • 코드 선명도 : 투명한 효과가 필요한시기와 필요하지 않은 경우 명확하게하면 코드를보다 쉽게 ​​유지할 수 있습니다.

imageColoralLocatealpha () 만 사용하는 경우 쓸모없는 계산을 증가시킬뿐만 아니라 형식 호환성 문제를 일으킬 수도 있습니다.

5 ?? 실용적인 조언

? 간단한 그림 채우기 만 수행하는 경우, 선을 그리기 및 텍스트 추가 : imageColorAllocate ()를 사용하십시오.

? PNG의 투명성과 반투명 레이어링이있는 워터 마크를 만들어야하는 경우 : ImageColorallocatealpha ()를 사용하십시오. 동시에 ImagesAvealpha ()를 활성화하십시오.