Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP imagecolorclosestalpha() 함수 – 알파 값을 고려한 가장 가까운 색상 찾기

PHP imagecolorclosestalpha() 함수란?

imagecolorclosestalpha() 함수는 GD 라이브러리에서 제공하는 함수로, 지정한 RGB 색상과 알파(투명도) 값을 기준으로 이미지 팔레트에서 가장 가까운 색상의 인덱스를 찾아 반환합니다. 일반적인 imagecolorclosest() 함수와 달리 투명도 정보까지 함께 비교하기 때문에, 반투명 색상이 포함된 이미지를 다룰 때 유용합니다.

문법

imagecolorclosestalpha ( img, red, green, blue, alpha )

매개변수

  • img: imagecreatetruecolor() 또는 imagecreatefrompng() 등으로 생성한 이미지 리소스입니다.

  • red: 빨간색(Red) 구성 요소입니다. (0~255)

  • green: 초록색(Green) 구성 요소입니다. (0~255)

  • blue: 파란색(Blue) 구성 요소입니다. (0~255)

  • alpha: 이미지의 투명도입니다. 0은 완전히 불투명, 127은 완전히 투명을 의미합니다.

반환값

이 함수는 팔레트에서 지정한 색상 및 알파 값과 가장 근접한 색상의 인덱스(index)를 정수 형태로 반환합니다.

예제

다음 예제는 PNG 이미지를 불러온 뒤 팔레트로 변환하고, 특정 RGBA 값에 가장 가까운 색상을 찾는 과정을 보여줍니다.

<?php
    // PNG 파일로부터 이미지 생성
    $img = imagecreatefrompng('https://www.tutorialspoint.com/images/tp-logo-diamond.png');
    
    // 트루컬러 이미지를 255색 팔레트 이미지로 변환
    imagetruecolortopalette($img, false, 255);
    
    // RGBA(180, 100, 150, 110)에 가장 가까운 색상 인덱스 검색
    $match = imagecolorclosestalpha($img, 180, 100, 150, 110);
    
    // 인덱스를 실제 색상 값으로 변환
    $match = imagecolorsforindex($img, $match);
    $match = "({$match['red']}, {$match['green']}, {$match['blue']}, {$match['alpha']})";
    
    // 결과 출력
    echo $match;
    
    // 메모리 해제
    imagedestroy($img);
?>

실행 결과

위 코드를 실행하면 다음과 같이 가장 가까운 색상의 RGBA 값이 출력됩니다.

(140, 130, 140, 0)

참고 사항

  • 알파 값을 비교하려면 대상 이미지가 반드시 팔레트 기반 이미지여야 하므로, 트루컬러 이미지는 imagetruecolortopalette()로 변환한 후 사용하는 것이 좋습니다.

  • 검색이 끝난 이미지 리소스는 imagedestroy()를 호출하여 메모리에서 해제하는 것이 바람직합니다.