색상 팔레트 추출
브라우저 안에서만 처리됩니다. 입력한 내용과 선택한 파일은 서버로 전송되지 않습니다.
이미지를 여기에 끌어다 놓거나 클릭해서 선택하세요.
선택한 이미지는 브라우저 안에서만 처리됩니다. 서버로 전송되지 않습니다.
사용법
- 사진을 끌어다 놓거나 클릭해서 선택합니다. 한 번에 한 장을 다룹니다.
- 슬라이더로 뽑을 색 수를 2~16 사이에서 정합니다. 손을 떼면 바로 다시 뽑습니다.
- 각 견본의 HEX·RGB 값과 그 색이 사진에서 차지하는 비율이 함께 표시됩니다. 값 옆의 단추로 하나씩 복사할 수 있습니다.
- 아래 "CSS 변수" 칸을 통째로 복사하면 스타일시트에 그대로 붙여 넣을 수 있습니다. 변수 이름의 앞머리는 바꿀 수 있습니다.
자주 묻는 질문
같은 사진을 다시 넣으면 같은 팔레트가 나오나요?
나옵니다. 그러려고 알고리즘을 골랐습니다. 색을 뽑는 흔한 방법인 k-means 는 시작점을 무작위로 잡아서 같은 사진에서도 실행할 때마다 다른 색이 나옵니다. 이 도구는 median cut 으로 시작점을 정해진 규칙대로 잡은 뒤 그 위에서만 다듬기 때문에, 어느 단계에도 무작위가 들어가지 않습니다. 사진·색 수·표본 간격이 같으면 결과가 항상 같습니다.
사진의 모든 화소를 보나요?
아닙니다. 최대 10만 화소만 골라 읽습니다. 12MP(4032×3024) 사진이면 121화소마다 하나씩, 전체의 약 0.8% 입니다. 전부 읽으면 이 환경 기준으로 약 14초가 걸리는데 골라 읽으면 0.1~0.2초입니다. 정확도로 치른 대가는 작습니다 — 뽑힌 팔레트가 사진을 얼마나 잘 대표하는지(모든 화소에서 가장 가까운 대표색까지의 평균 거리)를 재 보면 전부 읽었을 때보다 약 3% 나빴고, 색 수를 16으로 두면 오히려 조금 나은 경우도 있었습니다. 화면에는 몇 화소마다 하나를 읽었는지 항상 적어 둡니다.
비율은 무엇을 뜻하나요?
읽은 화소 중 그 대표색으로 묶인 화소의 비율입니다. 사진 전체를 센 것이 아니라 표본을 센 것이므로 소수점 아래는 조금씩 흔들릴 수 있습니다. 어느 색이 바탕이고 어느 색이 강조인지를 가리는 용도로 보시면 됩니다.
투명한 부분은 어떻게 되나요?
거의 투명한 화소(알파 8 미만)는 팔레트에서 뺍니다. 배경을 지운 PNG 에서 "보이지도 않는 색"이 대표색으로 올라오는 것을 막기 위해서입니다. 몇 화소를 뺐는지는 화면에 표시합니다. 사진 전체가 투명하면 뽑을 색이 없다고 알려줍니다.
눈에 보이는 색과 뽑힌 색이 조금 다릅니다
색의 거리를 RGB 값 그대로 재기 때문입니다. 사람 눈은 초록에 민감하고 어두운 쪽의 차이를 더 크게 느끼는데, RGB 거리는 그 차이를 반영하지 않습니다. 사람 눈에 맞춘 색 공간(CIE Lab)으로 재면 조금 더 맞지만 화소마다 변환 비용이 붙고, 대표색의 순위는 대부분 바뀌지 않아서 넣지 않았습니다.
사진이 서버로 올라가나요?
올라가지 않습니다. 이 사이트에는 업로드 경로도, 원격 URL 을 읽어오는 경로도 없습니다. 사진을 열고 색을 세는 일이 전부 브라우저 안에서 일어납니다.