Streamlit로 만드는 CSS 색상 이름 찾기 앱 개발 가이드

CSS 색상 이름 찾기 앱 개발 가이드

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

웹/앱 디자이너, Python 개발자, 색상 조합에 관심 있는 사람들

핵심 요약

  • Streamlitmatplotlib을 사용하여 CSS4 색상 이름을 자동으로 찾는 웹 앱 개발
  • RGB 유사도 계산을 통해 사용자 입력 색상과 가장 가까운 CSS 색상 매칭 (코드: rgb_distance 함수)
  • 차트 비교 기능으로 사용자 색상과 매칭된 색상의 시각적 비교 제공

섹션별 세부 요약

1. 문제 정의 및 필요성

  • CSS 색상 이름을 수동으로 찾아야 하는 번거로움 해결
  • 디자이너/개발자가 색상 선택 시 참고할 수 있는 도구 제공

2. 사용 도구 및 기술 스택

  • Streamlit: Python 기반 웹 앱 개발 프레임워크
  • matplotlib: CSS4 색상 딕셔너리 제공 (mcolors.CSS4_COLORS)
  • 수학 모듈: 유사도 계산을 위한 Euclidean distance 알고리즘

3. 앱 동작 원리

  • 사용자 색상 입력 (RGB/HEX) → RGB 정규화 → CSS4 색상과 유사도 계산 → 최적 매칭 반환
  • 유사도 계산: sqrt(sum((a - b)^2 for a, b in zip(rgb1, rgb2)))

4. 주요 코드 구조

  • HEX → RGB 변환: mcolors.to_rgb(hex_color)
  • 색상 매칭 함수:

```python

def closest_css_color(target_rgb):

for name, hex_val in mcolors.CSS4_COLORS.items():

dist = rgb_distance(mcolors.to_rgb(hex_val), target_rgb)

if dist < min_dist: min_dist = dist; closest_name = name

```

  • Streamlit UI 구성: 색상 피커, RGB 표시, 병렬 비교 차트

5. 실행 방법

  • 설치: pip install streamlit matplotlib
  • 실행: streamlit run color_name_finder.py

결론

  • Streamlit으로 빠르게 구현 가능한 색상 매칭 앱 예제
  • Euclidean distance 알고리즘 활용 시 시각적 비교 기능 추가 가능
  • 확장성: 이미지에서 주요 색상 추출, 상위 5개 색상 매칭 기능 추가 가능