ICC 색 프로파일 분석기
.icc 또는 .icm 파일을 열어 헤더, 태그 테이블, 원색, 백색점, 톤 커브를 확인합니다. 모든 해석은 브라우저 안에서 이뤄집니다.
사용법
- .icc 또는 .icm 파일을 상자에 놓으세요. macOS는 /Library/ColorSync/Profiles, Windows는 C:\Windows\System32\spool\drivers\color, 리눅스는 /usr/share/color/icc에 들어 있습니다.
- 먼저 헤더 카드를 보세요. 장치 클래스와 색 공간이 어떤 종류의 프로파일인지 알려 주고, 구조 항목은 변환이 행렬과 커브로 이뤄지는지 룩업 테이블로 이뤄지는지 알려 줍니다.
- 경고 블록을 확인하세요. 규격에 맞는 프로파일에서는 비어 있으며, 표시되는 항목은 취향 문제가 아니라 실제 규격 위반입니다.
- 원색과 백색점을 살펴보세요. 가장 가까운 표준 색역이 표시되더라도 그것은 유사성일 뿐이며, 옆에 적힌 수치가 실제 차이를 말해 줍니다.
- 태그 테이블에서 프로파일이 무엇을 담고 있는지 훑어보세요. A2B0/B2A0은 룩업 테이블, chad는 컬러런트가 D50으로 적응됐다는 뜻이고, 바이트를 공유한다고 표시된 태그는 중복이 아닙니다.
자세한 설명
펼치기접기
ICC 프로파일은 128바이트 빅엔디언 헤더와 태그 테이블, 그리고 일반적인 환경에서는 열어 볼 방법이 없는 이진 구조 더미로 이루어져 있습니다. 이 도구는 그 셋을 모두 읽습니다. 헤더에서는 버전, 장치 클래스, 데이터 색 공간과 프로파일 연결 공간(PCS), 생성 시각(유닉스 시간이 아니라 빅엔디언 16비트 값 여섯 개), 렌더링 인텐트, D50이어야 하는 PCS 광원, 그리고 헤더 세 필드를 0으로 만든 뒤 계산한 MD5인 16바이트 프로파일 ID를 보여 줍니다. ID가 들어 있으면 다시 계산해 현재 바이트와 일치하는지 알려 주고, 전부 0이면 아무도 계산하지 않았다는 뜻일 뿐 손상된 파일이 아닙니다. 태그 테이블은 파일 순서대로 오프셋, 크기, 타입 서명, 해독한 내용까지 나열합니다. v2 textDescription과 v4 다국어 설명, 컬러런트, 색순응 행렬, 커브, LUT, 딕셔너리를 모두 다룹니다. 같은 바이트를 가리키는 두 태그(rTRC·gTRC·bTRC가 커브 하나를 공유하는 흔한 경우)는 두 번 찍는 대신 공유하고 있다고 표시합니다. 가장 쓸모 있는 부분은 파생 값입니다. 컬러런트 태그는 D50 기준으로 저장되므로 chad 행렬의 역행렬을 적용해 되돌리기 전에는 익숙한 원색으로 보이지 않습니다. 이 도구는 그 계산을 수행하고, 얻은 xy 색도를 sRGB, Adobe RGB, Display P3, Rec.2020, ProPhoto와 비교해 가장 가까운 것을 거리와 함께 "추정"으로 제시합니다. 같은 색 공간을 위한 프로파일도 마지막 자리에서 서로 다르기 때문에 동일하다고 단정하지 않습니다. 백색점은 XYZ, xy, 상관 색온도로 함께 보여 줍니다. 톤 커브는 항등, 단일 감마, 매개변수를 모두 펼친 파라메트릭 함수, 샘플 테이블 가운데 실제 형태로 설명하며, 감마를 추정해야 할 때는 추정값이라고 명시합니다. sRGB 커브는 구간별 함수라서 "감마 2.2"라고 부르는 것은 30년째 반복된 거짓이기 때문입니다. 구조적 결함은 감추지 않고 보고합니다. 선언 크기와 실제 길이의 불일치, 파일 끝을 넘어가는 태그, 헤더와 겹치는 태그, 어느 태그에도 속하지 않는 바이트, 0이 아닌 예약 바이트가 그 대상입니다. 36~39바이트가 acsp가 아닌 파일은 절반만 해석하지 않고 이름을 붙여 거부합니다. 반대로 이미지 변환, 프로파일 생성, 품질 판정은 하지 않습니다. 수치상 유효한 프로파일이 제대로 측정되지 않은 디스플레이를 기술하고 있을 수도 있기 때문입니다.
자주 묻는 질문
태그에 든 빨강·초록·파랑 값이 제가 아는 원색과 다릅니다. 왜 그런가요?
컬러런트 태그는 장치의 원색이 아니기 때문입니다. v4 디스플레이 프로파일의 모든 XYZ 값은 실제 디스플레이가 대부분 D65 기준으로 만들어졌더라도 프로파일 연결 공간의 D50 광원을 기준으로 표현됩니다. 두 기준 사이의 변환은 색순응 태그 chad에 3x3 브래드퍼드 행렬로 저장돼 있습니다. 디스플레이가 실제로 갖는 색도를 되찾으려면 이 행렬의 역행렬을 각 컬러런트에 적용해야 하고, chad 태그가 있으면 이 도구가 그 계산을 대신합니다. 태그가 없으면 되돌릴 근거가 없으므로 저장된 D50 기준 값을 그대로 보여 주고 그렇다고 명시합니다. sRGB 프로파일에서는 x가 0.6400이 아니라 0.6484로 보이는 차이입니다.
제 sRGB 프로파일이 감마 2.2가 아니라고 나옵니다. 잘못된 건가요?
아닙니다. sRGB 규격은 애초에 "감마 2.2"를 말한 적이 없습니다. sRGB 전달 함수는 구간별로 정의돼 0.04045 아래는 선형이고, 그 위로는 입력을 배율·오프셋 조정한 뒤 지수 2.4의 거듭제곱을 적용합니다. ICC 파라메트릭 커브로 쓰면 함수 유형 3에 매개변수 다섯 개이고, 이 도구는 그 다섯 개를 모두 출력합니다. 이 커브가 중간톤에서 순수 감마 2.2와 가깝기 때문에 그런 약칭이 생겼지만 검은색 근처에서 갈라지며, 밴딩이 보이는 지점이 바로 거기입니다. 프로파일이 샘플 테이블을 담고 있으면 정확한 감마 자체가 없으므로 중간 회색에서 잰 추정값임을 표시합니다.
매트릭스/셰이퍼 프로파일과 LUT 프로파일은 무엇이 다른가요?
매트릭스/셰이퍼 프로파일은 컬러런트 태그 셋과 톤 커브 셋으로 장치를 기술합니다. 각 채널을 커브에 통과시키고 컬러런트로 만든 3x3 행렬을 곱하면 연결 공간에 도달합니다. 작고 빠르며 역변환이 가능하지만, 동작이 그만큼 단순한 장치만 기술할 수 있습니다. 디스플레이는 대체로 그렇습니다. LUT 프로파일은 대신 A2B0/B2A0 계열에 다차원 샘플 테이블을 인텐트마다 하나씩 담습니다. 종이 위의 잉크는 선형계가 아니어서 프린터에는 이 방식이 필요합니다. 두 가지를 모두 담은 프로파일도 있고, 이때 색관리 모듈이 인텐트에 따라 고르기 때문에 같은 프린터 프로파일이 지각적 모드와 색도 모드에서 다르게 동작합니다.
프로파일 ID가 전부 0입니다. 파일이 손상된 건가요?
아닙니다. 프로파일 ID는 플래그 필드, 렌더링 인텐트 필드, ID 필드 자체를 0으로 둔 상태에서 프로파일 전체를 MD5로 해시한 16바이트 값이고, 규격은 이 계산을 의무로 만든 적이 없습니다. 많은 프로파일러가 비워 두므로 전부 0이라는 것은 아무도 쓰지 않았다는 뜻입니다. 오히려 눈여겨볼 쪽은 ID가 있는데 더 이상 맞지 않는 경우로, 계산 이후 파일이 편집됐다는 신호입니다. 이 도구는 ID가 저장돼 있으면 해시를 다시 계산해 둘 중 어느 쪽인지 알려 줍니다.
태그 두 개의 오프셋이 같습니다. 프로파일의 버그인가요?
의도된 것이고 규격상 완전히 정상입니다. 태그 테이블은 서명을 위치에 대응시킬 뿐이고, 서로 다른 서명이 같은 위치를 가리키는 것을 막는 규칙은 없습니다. 흔한 사례가 디스플레이 프로파일의 rTRC, gTRC, bTRC입니다. 세 채널이 톤 커브 하나를 공유하므로 커브를 한 번만 저장하고 세 항목이 그곳을 가리켜 수백 바이트를 아낍니다. 같은 바이트를 세 번 찍으면 따로 움직일 수 있는 독립된 커브 셋처럼 보이므로 공유로 표시합니다. 손으로 편집할 때 문제가 되는데, "하나"를 고치면 셋이 함께 바뀝니다.
연결 공간은 왜 중요하고, 장치 링크는 무엇이 다른가요?
프로파일 연결 공간은 모든 변환이 거쳐 가는 공통 지대입니다. 원본 장치에서 PCS로, PCS에서 대상 장치로 이어집니다. 규격은 여기에 XYZ 또는 Lab만 허용하므로 다른 값을 내세우는 프로파일은 다른 프로파일과 이어 붙일 수 없습니다. 예외가 장치 링크 클래스인데, 이것은 장치 기술이 아니라 원본에서 대상까지의 변환을 통째로 굳혀 놓은 것입니다. 그래서 PCS 필드에 출력 장치 공간이 들어가며 CMYK나 RGB가 정상이고, 이 도구도 경고하지 않습니다. 장치 링크는 만들어진 조합에 대해서는 빠르고 정확하지만 다른 조합에는 쓸 수 없습니다. 링크를 건네주는 프로그램이 다른 용지에서 프린터가 어떻게 동작할지 알려 주지 못하는 이유입니다.
관련 도구
자바 클래스 파일 분석기
컴파일된 .class 파일을 브라우저에서 바로 분석합니다. 클래스 파일 버전과 자바 릴리스, 접근 플래그, 상수 풀, 필드, 메서드, 참조 클래스를 보여줍니다.
파일
WebP 파일 검사기
.webp 파일의 RIFF 청크를 브라우저에서 훑어봅니다. 손실·무손실·확장 구분, 캔버스와 프레임 크기 비교, 애니메이션 타이밍, 알파, ICC, Exif, XMP를 보여줍니다.
파일
GPX 트랙 분석기 (거리·고도·지도)
GPS 시계·Strava·Garmin·Wahoo·Komoot 등에서 받은 .gpx 파일을 드롭하면 총 거리·누적 상승/하강·소요시간·이동시간·평균/최고 속도와 함께 트랙 미니맵과 고도 프로필을 즉시 보여줍니다.
파일
PSD / PSB 검사기
포토샵 없이 .psd·.psb를 읽습니다. 캔버스, 컬러 모드, 레이어별 혼합 모드·불투명도·마스크·그룹, 그리고 썸네일까지.
파일
파이썬 피클 검사기
.pkl 파일을 브라우저에서 디스어셈블합니다. 오프코드 전체, 메모, 복원된 값, 그리고 불러올 때 코드가 실행되는지까지.
개발
PE 인스펙터: Windows EXE·DLL 뷰어
Windows의 .exe, .dll, .sys, .efi를 브라우저에서 엽니다. 아키텍처, 서브시스템, 임포트, 익스포트, 섹션, ASLR·DEP·CFG 적용 여부까지.
파일