php imagecolortransparent( ) 함수 호풀시 컬러 인덱스에 관하여
본문
thumbnail.lib 대략 370행에, 투명 gif 라사이징 처리 코드가 있는데요,
1)} else if($size[2] == 1) { // gif 이면,
2) $palletsize = imagecolorstotal($src); // 총 색상 수
3)if($src_transparency >= 0 && $src_transparency < $palletsize) { // 이미지에 투명색이 있다면
4)$transparent_color = imagecolorsforindex($src, $src_transparency); // 그 투명한 색상들을 [red] [green] [blue] 배열에 받아온다.
5)$current_transparent = imagecolorallocate($dst, $transparent_color['red'], $transparent_color['green'], $transparent_color['blue']); // $dst에 그 투명 색상들을 지정한다
6)imagefill($dst, 0, 0, $current_transparent); // $dst에 $current_transparent 색으로 칠해준다
7)imagecolortransparent($dst, $current_transparent); // $current_transparent를 투명하게 바꿔준다
이렇게 나름 해석해봤는데요,
질문 1. 3)에서 4)로 넘어가는 과정이 헷갈립니다. 3)번이 오기 전에 $src_transparency = @imagecolortransparent($src); 이렇게 미리 정의되어 있습니다.
imagecolortransparent($image, $color)함수는 $color값이 없고, $image에 투명색상이 존재하면 0 ~ palletsize 사이 color index값을 반환..? -> 그럼 이 함수는 $image의 $color를 투명하게 해주는 기능을 가지고 있으면서, 컬러 인덱스int값까지 반환해주는 함수인가요?
질문 2. 여기서 컬러 인덱스에 대하여 여쭙니다. 컬러 인덱스에 리서치를 해봐도 구글에 엑셀, html컬러 코드 이런것밖에 안나오고 위키페디아엔 5숫자 인덱스값들이 나오거든요. 근데 xampp로 제가 몇몇의 예제를 시도해봤을때 이 컬러 인덱스값이 때론 1자리수 2자리수가 나오더라고요. 컬러 인덱스란 각 색에 지정된 숫자 id를 뜻하나요? $palletsize = imagecolorstotal($src) 의 imagecolorstotal 이 대략 gif 의 색상수 250이라면, 0과 250 사이의 인덱스 뜻은 색상'숫자'에 해당된다는건데 이렇게 해석을 해도 뭔가 헷갈립니다.