PHOTOSHOT / DEVELOPMENT JOURNAL
빨강과 파랑을
바꾸는 계산
채널 혼합은 빨강을 더 진하게 만드는 기능과 다릅니다. 원래 사진의 R·G·B를 어떤 비율로 섞을지 정해서, 새로운 출력 채널을 만듭니다.


10편에서는 빨강과 파랑을 교환하는 설정으로 구조를 살펴봅니다. 같은 원본에 교환을 적용하고 불투명도를 70%로 낮춘 사진이 위의 결과입니다.
출력 채널마다 비율 네 개를 저장했습니다
출력 빨강은 R 0·G 0·B 100, 출력 파랑은 R 100·G 0·B 0으로 설정했습니다. 출력 초록은 기본값인 G 100을 유지했습니다. 상수는 세 채널 모두 0입니다.
화면에서 ‘조정 채널’을 바꾸면 편집할 출력 채널이 바뀝니다. 각 채널에 입력 R·G·B의 비율과 상수를 저장하므로 숫자 설정은 총 12개입니다. 범위는 각각 −200~200입니다.
| 출력 | 입력 R | 입력 G | 입력 B |
|---|---|---|---|
| 빨강 | 0 | 0 | 100 |
| 초록 | 0 | 100 | 0 |
| 파랑 | 100 | 0 | 0 |
한 채널의 결과를 RGB 가중합으로 구합니다
입력 R·G·B를 0~1로 바꾼 뒤 비율을 곱해 더합니다. 상수도 더하고 100으로 나눈 결과를 0~1로 제한합니다. 아래 코드는 출력 채널 하나를 계산하는 부분입니다.
out[c] = clamp(
(r * v[key + 'R']
+ g * v[key + 'G']
+ b * v[key + 'B']
+ v[key + 'Constant']) / 100
);따라서 상수 +10은 채널값에 0.1을 더합니다. 8비트로 보면 약 25.5에 해당하며, 이미 밝은 값은 최댓값에 걸릴 수 있습니다. 화면의 RGB 합계 표시는 안내용이고, 합계를 자동으로 100%에 맞추지는 않습니다.
- 출력 채널 선택R·G·B 중 계산할 채널의 설정을 읽습니다.
- 입력 채널 혼합원래 세 채널에 각 비율을 곱해 더합니다.
- 상수와 범위 제한상수를 반영한 결과를 0~1로 제한합니다.
채널 교환과 레이어 불투명도를 구분합니다
단색 모드는 같은 결과를 세 채널에 넣습니다
단색을 켜면 출력 채널에 관계없이 빨강 출력의 비율을 읽습니다. 이 한 묶음으로 계산한 값을 R·G·B에 똑같이 넣어 회색을 만듭니다.
const key = v.mono ? 'r' : 'rgb'[c];R 30·G 59·B 11로 설정하면 세 입력을 다르게 반영한 흑백이 됩니다. 08편 흑백 레이어처럼 원래 색상각을 여섯 범위로 나누어 처리하는 방식은 아닙니다.
Adobe 문서는 채널 혼합의 기능과 옵션을 확인하는 데 참고했습니다. 이 글의 식과 숫자는 포토샷 소스 기준이며, Photoshop과의 전체 픽셀 일치율을 뜻하지 않습니다.
| 구분 | 포토샷에서 사용하는 값 |
|---|---|
| 컬러 | 각 출력 채널의 R·G·B·상수 |
| 단색 | 빨강 출력 설정을 세 채널에 공통 적용 |
| 레이어 강도 | 계산이 끝난 뒤 불투명도로 합성 |
구현 코드와 참고 자료
- 채널 혼합 컨트롤 정의
Photoshot v0.16.0 · 실제 구현과 테스트 - RGB 가중합과 단색 분기
Photoshot v0.16.0 · 실제 구현과 테스트 - 채널 합계 표시
Photoshot v0.16.0 · 실제 구현과 테스트 - Adobe · Channel Mixer의 출력 채널과 단색 기능
기능 의미를 비교하기 위한 참고 문서입니다. Adobe의 내부 구현 코드 출처는 아닙니다.
