색상 팔레트 추출

브라우저 안에서만 처리됩니다. 입력한 내용과 선택한 파일은 서버로 전송되지 않습니다.

이미지를 여기에 끌어다 놓거나 클릭해서 선택하세요.

선택한 이미지는 브라우저 안에서만 처리됩니다. 서버로 전송되지 않습니다.

사용법

  1. 사진을 끌어다 놓거나 클릭해서 선택합니다. 한 번에 한 장을 다룹니다.
  2. 슬라이더로 뽑을 색 수를 2~16 사이에서 정합니다. 손을 떼면 바로 다시 뽑습니다.
  3. 각 견본의 HEX·RGB 값과 그 색이 사진에서 차지하는 비율이 함께 표시됩니다. 값 옆의 단추로 하나씩 복사할 수 있습니다.
  4. 아래 "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 을 읽어오는 경로도 없습니다. 사진을 열고 색을 세는 일이 전부 브라우저 안에서 일어납니다.