간단한 색상 선택기: RGB, Hex, CMYK 색상 값 선택 및 복사
인터랙티브 스펙트럼 디스플레이와 밝기 슬라이더가 있는 사용자 친화적인 색상 선택기. 색상을 시각적으로 선택하거나 RGB, Hex 또는 CMYK 형식으로 정확한 값을 입력하세요. 디자인 프로젝트를 위해 클릭 한 번으로 색상 코드를 복사할 수 있습니다.
색상 선택기
RGB (0-255)
CMYK (0-100)
색상 선택기
문서
간단하고 사용자 친화적인 색상 선택 도구
소개
색상 선택 도구는 사용자가 여러 색상 형식 간에 색상을 선택하고 시각화하며 변환하는 데 도움을 주기 위해 설계된 직관적이고 사용하기 쉬운 애플리케이션입니다. 웹 디자이너가 색상 조합을 만들거나, 디지털 아티스트가 완벽한 색조를 찾거나, 개발자가 사용자 인터페이스를 구현하는 경우, 이 색상 선택기는 RGB, 16진수, CMYK 및 HSV 형식으로 색상 작업을 간단하게 수행할 수 있는 방법을 제공합니다. 상호작용하는 색상 스펙트럼, 밝기 슬라이더 및 정밀 입력 옵션을 통해 프로젝트에 필요한 색상 값을 신속하게 찾고 조정하며 복사할 수 있습니다.
색상 모델 이해하기
색상 선택기를 사용하는 방법을 알아보기 전에, 지원하는 다양한 색상 모델을 이해하는 것이 도움이 됩니다:
RGB (빨강, 초록, 파랑)
RGB는 빨강, 초록 및 파랑 빛이 다양한 방식으로 결합되어 넓은 범위의 색상을 재현하는 가산 색상 모델입니다. 디지털 애플리케이션에서:
- 각 구성 요소(R, G, B)는 0에서 255까지의 범위를 가집니다.
- RGB(255, 0, 0)는 순수한 빨강을 나타냅니다.
- RGB(0, 255, 0)는 순수한 초록을 나타냅니다.
- RGB(0, 0, 255)는 순수한 파랑을 나타냅니다.
- RGB(255, 255, 255)는 흰색을 나타냅니다.
- RGB(0, 0, 0)는 검은색을 나타냅니다.
RGB 모델은 화면에서 색상이 표시되는 방식과 직접적으로 관련이 있어 디지털 디자인의 주요 선택입니다.
16진수 (Hex)
16진수 색상 코드는 RGB 색상을 16진수 숫자 체계를 사용하여 표현하는 방법입니다:
- 16진수 색상은 파운드 기호(#)로 시작하고 여섯 개의 문자로 구성됩니다.
- 첫 번째 쌍은 빨강을, 두 번째는 초록을, 세 번째는 파랑을 나타냅니다.
- 각 쌍은 00에서 FF(십진수 0-255)까지의 범위를 가집니다.
- #FF0000은 순수한 빨강을 나타냅니다.
- #00FF00은 순수한 초록을 나타냅니다.
- #0000FF는 순수한 파랑을 나타냅니다.
- 특정 색상에 대해 축약 표기법이 가능합니다(예: #F00은 빨강을 나타냅니다).
16진수 코드는 웹 개발(CSS, HTML) 및 디지털 디자인 애플리케이션에서 널리 사용됩니다.
CMYK (청록, 마젠타, 노랑, 키/검정)
CMYK는 주로 색상 인쇄에 사용되는 감산 색상 모델입니다:
- 각 구성 요소는 0%에서 100%까지의 범위를 가집니다.
- CMYK(0, 100, 100, 0)는 순수한 빨강을 나타냅니다.
- CMYK(100, 0, 100, 0)는 순수한 초록을 나타냅니다.
- CMYK(100, 100, 0, 0)는 순수한 파랑을 나타냅니다.
- CMYK(0, 0, 0, 100)는 검은색을 나타냅니다.
- CMYK(0, 0, 0, 0)는 흰색(종이 색상)을 나타냅니다.
주로 인쇄에 사용되지만, CMYK 값을 이해하는 것은 최종적으로 인쇄될 콘텐츠를 디자인할 때 유용할 수 있습니다.
HSV (색상, 채도, 명도)
HSV는 색상을 다음과 같은 방식으로 표현합니다:
- 색상(Hue): 색상 유형(빨강, 노랑, 초록 등), 각도(0-360°)로 측정됨
- 채도(Saturation): 색상의 강도 또는 순도(0-100%)
- 명도(Value): 색상의 밝기(0-100%)
HSV는 색상 선택에 특히 유용하며, 색상 선택(색상)을 강도(채도) 및 밝기(명도)와 분리하여 색상을 조정하는 데 더 직관적입니다.
색상 변환 공식
색상 선택기는 다음과 같은 수학 공식을 사용하여 서로 다른 색상 모델 간에 자동으로 변환합니다:
RGB에서 Hex로 변환
RGB를 16진수로 변환하려면:
- 각 RGB 구성 요소(0-255)를 두 자리 16진수 숫자로 변환합니다.
- 세 개의 16진수 값을 # 접두사와 함께 연결합니다.
여기서 toHex()
는 십진수를 16진수 표현으로 변환합니다.
RGB에서 CMYK로 변환
RGB에서 CMYK로 변환하는 과정은 다음과 같습니다:
- RGB 값을 0-1 범위로 정규화합니다.
- 검정 키(K) 구성 요소를 계산합니다.
- K를 기반으로 C, M 및 Y를 계산합니다.
RGB에서 HSV로 변환
RGB를 HSV로 변환하는 과정:
색상(H)에 대한 공식:
0° & \text{if } \Delta = 0 \\ 60° \times (\frac{G' - B'}{\Delta} \mod 6) & \text{if } C_{max} = R' \\ 60° \times (\frac{B' - R'}{\Delta} + 2) & \text{if } C_{max} = G' \\ 60° \times (\frac{R' - G'}{\Delta} + 4) & \text{if } C_{max} = B' \end{cases}$$ 채도(S)에 대한 공식: $$S = \begin{cases} 0 & \text{if } C_{max} = 0 \\ \frac{\Delta}{C_{max}} \times 100\% & \text{otherwise} \end{cases}$$ 명도(V)에 대한 공식: $$V = C_{max} \times 100\%$$ ## 색상 선택기 사용 방법 우리의 색상 선택기 도구는 색상을 선택하고 조정하는 여러 가지 방법을 제공합니다. 각 기능을 사용하는 방법에 대한 단계별 가이드는 다음과 같습니다: ### 색상 스펙트럼 사용하기 1. **기본 색상 선택**: 색상 스펙트럼에서 원하는 위치를 클릭하거나 탭하여 기본 색상을 선택합니다. 수평 위치는 색상(hue)을 결정하고, 수직 위치는 채도를 영향을 미칩니다. 2. **선택 미세 조정**: 선택기 원을 드래그하여 완벽한 색조를 찾을 수 있습니다. 3. **색상 미리보기 보기**: 선택기를 이동하면 색상 미리보기 영역이 실시간으로 업데이트되어 현재 선택된 색상을 보여줍니다. ### 밝기 조정하기 1. **밝기 슬라이더 사용**: 색상 스펙트럼 아래에는 선택한 색상의 밝기(명도)를 조절하는 수평 슬라이더가 있습니다. 2. **왼쪽 또는 오른쪽으로 드래그**: 슬라이더를 왼쪽으로 이동하여 색상을 어둡게 하거나 오른쪽으로 이동하여 밝게 합니다. 3. **변화 관찰**: 밝기를 조정할 때 색상 미리보기 및 모든 색상 값이 즉시 업데이트됩니다. ### 정확한 색상 값 입력하기 정확한 색상 선택을 위해 지원되는 형식 중 하나로 직접 값을 입력할 수 있습니다: #### Hex 입력 1. Hex 필드에 유효한 16진수 색상 코드를 입력합니다(예: #FF5733). 2. 입력이 자동으로 유효성을 검사합니다. 3. Enter 키를 누르거나 필드 외부를 클릭하여 색상을 적용합니다. #### RGB 입력 1. 각 RGB 구성 요소에 대해 0-255 사이의 값을 입력합니다. 2. 다른 모든 색상 형식 필드가 자동으로 업데이트됩니다. 3. 유효하지 않은 값(0-255 범위 외부)은 유효한 범위로 조정됩니다. #### CMYK 입력 1. 청록, 마젠타, 노랑 및 검정에 대해 0-100 사이의 백분율 값을 입력합니다. 2. 다른 색상 형식은 CMYK 입력에 따라 업데이트됩니다. 3. 0-100 범위를 벗어난 값은 자동으로 조정됩니다. ### 색상 값 복사하기 1. **복사 버튼 클릭**: 각 색상 형식 옆에 복사 버튼(클립보드 아이콘)이 있습니다. 2. **즉각적인 피드백**: 클릭 후 "복사됨!" 메시지가 잠깐 나타납니다. 3. **어디서나 붙여넣기**: 복사된 값은 디자인 소프트웨어, 코드 편집기 또는 기타 애플리케이션에 붙여넣을 수 있습니다. ## 사용 사례 색상 선택기 도구는 다양한 분야에서 여러 가지 용도로 사용됩니다: ### 웹 개발 웹 개발자는 색상 선택기를 사용하여: - 웹사이트 테마 및 UI 구성 요소의 색상을 선택합니다. - WCAG 지침을 충족하는 접근 가능한 색상 조합을 찾습니다. - (CSS에서 사용되는) 16진수 코드와 RGB 값 간에 변환합니다. - 일관된 브랜딩을 위해 웹사이트의 색상 팔레트를 만듭니다. 예시 작업 흐름: 1. 색상 스펙트럼을 사용하여 웹사이트 테마의 기본 색상을 찾습니다. 2. 밝기를 조정하여 호버 상태 및 배경을 위한 변형을 만듭니다. 3. 16진수 코드를 CSS 스타일시트에 직접 복사합니다. 4. 투명성이 필요할 때 rgba() 함수에 RGB 값을 사용합니다. ### 그래픽 디자인 그래픽 디자이너는 다음과 같은 이점을 누릴 수 있습니다: - 디지털 아트워크를 위한 정밀 색상 선택 - RGB(디지털용)와 CMYK(인쇄용) 간의 변환 - 조화로운 색상 조합 만들기 - 특정 브랜드 색상 맞추기 예시 작업 흐름: 1. 16진수 형식으로 특정 브랜드 색상을 입력합니다. 2. 색상 스펙트럼을 사용하여 보완 색상을 찾습니다. 3. 인쇄 호환성을 보장하기 위해 CMYK 값을 확인합니다. 4. Adobe Illustrator 또는 Photoshop과 같은 디자인 소프트웨어에 값을 복사합니다. ### UI/UX 디자인 UI/UX 디자이너는 다음과 같은 작업을 수행할 수 있습니다: - 사용성과 가독성을 향상시키는 색상 선택 - 애플리케이션을 위한 일관된 색상 시스템 만들기 - 다양한 색상 조합을 신속하게 테스트 - 텍스트와 배경 색상 간의 충분한 대비를 보장 예시 작업 흐름: 1. 색상 스펙트럼을 사용하여 기본 색상을 선택합니다. 2. 밝기를 조정하여 보조 및 제3 색상을 만듭니다. 3. 미리보기 영역에서 다양한 조합을 테스트합니다. 4. 디자인 시스템이나 프로토타이핑 도구에 값을 복사합니다. ### 디지털 아트 디지털 아티스트는 색상 선택기를 사용하여: - 디지털 그림을 위한 완벽한 색조 찾기 - 사용자 정의 색상 팔레트 만들기 - 참조 이미지에서 색상 맞추기 - 색상 이론 개념 실험하기 예시 작업 흐름: 1. HSV 제어를 사용하여 특정 색상을 선택합니다. 2. 원하는 효과를 위해 채도와 밝기를 조정합니다. 3. 디지털 페인팅 소프트웨어에 RGB 값을 복사합니다. 4. 색조나 채도를 약간 조정하여 변형을 만듭니다. ### 교육 색상 선택기는 다음과 같은 교육 도구로 사용됩니다: - 색상 이론 개념 교육 - 색상 모델 변환 시연 - 디지털 색상 표현 설명 - 학생들이 색상 관계 이해하도록 돕기 예시 작업 흐름: 1. 색조 조정이 색상을 변경하는 방식을 보여줍니다. 2. RGB 값이 가시 색상과 어떻게 관련되는지 시연합니다. 3. 16진수 코드와 RGB 값 간의 관계를 설명합니다. 4. 인쇄와 디지털 애플리케이션을 위한 RGB와 CMYK의 차이를 설명합니다. ### 대안 우리의 색상 선택기가 포괄적인 기능을 제공하지만, 색상 선택에 대한 대안적인 접근 방식도 있습니다: #### 색상 팔레트 생성기 Adobe Color, Coolors 및 Paletton과 같은 도구는 개별 색상 선택보다 조화로운 색상 조합을 만드는 데 중점을 둡니다. 색상 이론 원칙에 따라 전체 색상 팔레트를 개발해야 할 때 이상적입니다. #### 이미지 기반 색상 추출기 ColorZilla 및 ImageColorPicker와 같은 도구를 사용하면 이미지나 화면의 어디에서든 색상을 직접 추출할 수 있습니다. 이는 사진이나 디자인에서 기존 색상을 맞추어야 할 때 특히 유용합니다. #### 물리적 색상 시스템 인쇄 중심 작업을 위해 Pantone, CMYK 견본집 또는 RAL 색상 차트와 같은 물리적 색상 시스템은 다양한 인쇄 프로세스 간의 색상 정확성을 보장하는 표준화된 참조를 제공합니다. #### 내장 소프트웨어 도구 대부분의 디자인 소프트웨어(Adobe Photoshop, Illustrator, Figma 등)에는 내장 색상 선택기가 포함되어 있습니다. 편리하지만, 이러한 도구는 종종 애플리케이션에 한정되어 있으며, 우리 도구가 제공하는 형식 간 변환 기능은 제공하지 않습니다. ## 디지털 색상 선택의 역사 색상 선택 도구의 발전은 디지털 디자인의 발전과 평행을 이룹니다: ### 초기 디지털 색상 (1970년대-1980년대) 첫 번째 디지털 색상 시스템은 하드웨어 제약으로 인해 매우 제한적이었습니다: - 초기 컴퓨터 모니터는 16개 또는 256개 색상만 표시할 수 있었습니다. - 색상은 미리 정의된 팔레트에서 선택되었습니다. - 웹 안전 색상 팔레트(216색)가 개발되어 교차 브라우저 호환성을 보장했습니다. ### RGB 및 Hex 표준 (1990년대) 기술이 발전함에 따라: - 24비트 색상이 표준이 되어 1,670만 가지 색상을 표시할 수 있게 되었습니다. - HTML 및 CSS에 16진수 표기법이 채택되었습니다. - 디자인 소프트웨어에 기본 색상 선택기가 등장했습니다. - 웹 디자이너는 이름이 지정된 색상과 16진수 코드에 제한되었습니다. ### 현대 색상 선택 (2000년대-현재) 오늘날의 색상 선택 도구는 디지털 색상에 대한 우리의 정교한 이해를 반영합니다: - 실시간 색상 선택기로 시각적 인터페이스 제공 - 여러 색상 모델(RGB, HSL, HSV, CMYK) 지원 - 대비 비율을 확인하는 색상 접근성 도구 - 고급 색상 조화 알고리즘 - 디자인 시스템 및 구성 요소 라이브러리와의 통합 색상 선택 도구의 발전은 디스플레이 기술, 색상 과학 및 디자인 방법론의 발전과 함께 계속 진화하고 있습니다. ## 색상 접근성 고려사항 색상을 선택할 때 색상 시각 장애가 있는 사용자에 대한 접근성을 고려하는 것이 중요합니다: ### 색맹 유형 - **프로타노피**: 빨간색을 인식하는 데 어려움 - **디유테라노피**: 초록색을 인식하는 데 어려움 - **트리타노피**: 파란색을 인식하는 데 어려움 - **무색맹**: 완전한 색맹(회색조만 보기) ### 접근성 팁 1. **정보를 전달하기 위해 색상에만 의존하지 마세요.** 2. **텍스트와 배경 간의 충분한 대비를 보장하세요.** (일반 텍스트의 경우 최소 4.5:1) 3. **차트와 그래프에 색상 외에 패턴이나 텍스처를 사용하세요.** 4. **색상 선택을 색맹 시뮬레이터로 테스트하세요.** 5. **문제가 되는 색상 조합을 피하는 색맹 친화적인 팔레트를 고려하세요.** ## 자주 묻는 질문 ### RGB와 CMYK 색상 모델의 차이는 무엇인가요? RGB(빨강, 초록, 파랑)는 디지털 디스플레이에 사용되는 가산 색상 모델로, 색상이 빛을 더하여 생성됩니다. CMYK(청록, 마젠타, 노랑, 검정)는 인쇄에 사용되는 감산 모델로, 색상이 빛을 흡수(감소)하여 생성됩니다. RGB는 디지털 미디어에 이상적인 더 밝고 생생한 색상을 생성하며, CMYK는 일반적으로 인쇄 자료에 더 적합한 제한된 색 영역을 가집니다. ### 화면에서 색상이 인쇄된 것과 다르게 보이는 이유는 무엇인가요? 이 차이는 화면이 RGB 색상 모델을 사용하여 더 넓은 범위의 색상을 표시할 수 있기 때문에 발생합니다. 또한 화면은 빛을 방출하고 인쇄된 자료는 빛을 반사합니다. 장치 간의 보정 차이, 종이 품질 및 잉크 변동도 이 불일치에 기여합니다. 인쇄 중심 작업의 경우, 항상 CMYK 값을 확인하고 물리적 증명을 요청하는 것을 고려하세요. ### 온라인에서 특정 색상의 16진수 코드를 찾으려면 어떻게 하나요? ColorZilla와 같은 브라우저 확장 프로그램을 사용하거나 내장된 개발자 도구를 사용할 수 있습니다. Chrome 또는 Firefox에서 요소를 마우스 오른쪽 버튼으로 클릭하고 "검사"를 선택한 다음 개발자 패널의 색상 선택기 도구를 사용하세요. 또는 스크린샷을 찍고 색상 선택 도구에 업로드한 다음 원하는 색상을 클릭하여 16진수 코드를 얻을 수 있습니다. ### 일관된 색상 조합을 만들기 위한 최선의 방법은 무엇인가요? 브랜드 또는 프로젝트의 분위기를 나타내는 기본 색상으로 시작하세요. 그런 다음 보색(색상 원에서 반대), 유사색(색상 원에서 인접), 삼원색(색상 원 주위에 고르게 배치된) 관계와 같은 색상 이론 원칙을 사용하여 추가 색상을 선택하세요. 계층 구조를 만들기 위해 채도와 밝기를 조정하세요. 우리의 색상 선택기는 이러한 관계를 시각화하고 선택을 미세 조정하는 데 도움을 줍니다. ### 선택한 색상이 접근 가능한지 어떻게 확인하나요? WebAIM 대비 검사기와 같은 도구를 사용하여 텍스트와 배경 색상 간의 대비 비율을 확인하세요. 일반 텍스트의 경우 최소 4.5:1 비율을 목표로 하고, 큰 텍스트의 경우 3:1 비율을 목표로 하세요. 색맹 사용자에게 문제가 되는 색상 조합(빨강/초록)을 피하세요. 색맹 시뮬레이터로 디자인을 테스트하세요. 약 8%의 남성과 0.5%의 여성은 어떤 형태의 색상 시각 장애가 있습니다. ### 16진수 색상 코드에서 # 기호는 무엇을 의미하나요? 해시 또는 파운드 기호(#)는 뒤따르는 문자가 16진수 색상 코드를 나타낸다는 것을 나타내는 접두사입니다. HTML, CSS 및 많은 디자인 애플리케이션에서 표준 표기법입니다. 그 뒤에 오는 여섯 자리는 16진수 형식으로 RGB 값을 나타내며, 첫 번째 쌍은 빨강, 두 번째는 초록, 세 번째는 파랑을 나타냅니다. ### 인쇄를 위해 RGB에서 CMYK로 색상을 변환하려면 어떻게 하나요? 우리의 색상 선택기는 RGB 값을 CMYK 등가물로 자동 변환합니다. RGB 값을 입력하면 해당 CMYK 값이 표시됩니다. 그러나 일부 RGB 색상은 CMYK 색 영역을 벗어나며 인쇄에서 정확하게 재현할 수 없습니다. Adobe Illustrator 또는 Photoshop과 같은 전문 디자인 소프트웨어도 색상 모드 변환을 제공하며 색 영역 경고를 표시합니다. ### 3자리 및 6자리 16진수 색상 코드가 모두 있는 이유는 무엇인가요? 3자리 16진수 코드는 각 구성 요소 쌍이 일치하는 경우 사용할 수 있는 축약 표기법입니다. 예를 들어, #FF0000은 F=FF, 0=00, 0=00이기 때문에 #F00으로 축약될 수 있습니다. 이 축약은 각 채널이 반복된 숫자로 표현될 수 있는 색상에만 적용됩니다. 초기 웹 시대에 파일 크기를 줄이기 위해 도입되었지만 여전히 편리한 축약법으로 남아 있습니다. ### 서로 다른 모델 간의 색상 변환의 정확성은 얼마나 되나요? RGB와 16진수 간의 변환은 서로 다른 형식에서 동일한 값을 직접 표현하므로 수학적으로 정확합니다. RGB와 CMYK 간의 변환은 빛의 방출과 잉크의 흡수라는 근본적인 차이로 인해 근사치입니다. 우리 도구는 이러한 제한 내에서 가능한 가장 정확한 변환을 제공하기 위해 업계 표준 공식을 사용합니다. ### 선택한 색상을 저장하거나 내보낼 수 있나요? 현재 개별 색상 값을 클립보드에 복사할 수 있습니다. 여러 색상을 프로젝트에 저장하려면 문서를 만들거나 전용 색상 팔레트 도구를 사용하는 것이 좋습니다. 향후 업데이트에서는 도구 내에서 색상 팔레트를 직접 저장하는 기능이 포함될 수 있습니다. ## 색상 변환을 위한 코드 예제 다음은 서로 다른 색상 형식 간의 변환 방법을 보여주는 코드 예제입니다:1// RGB에서 Hex로 변환
2function rgbToHex(r, g, b) {
3 const toHex = (c) => {
4 const hex = Math.round(c).toString(16);
5 return hex.length === 1 ? '0' + hex : hex;
6 };
7
8 return `#${toHex(r)}${toHex(g)}${toHex(b)}`;
9}
10
11// Hex에서 RGB로 변환
12function hexToRgb(hex) {
13 // #가 있는 경우 제거
14 const cleanHex = hex.startsWith('#') ? hex.slice(1) : hex;
15
16 // 3자리 및 6자리 hex 처리
17 const expandedHex = cleanHex.length === 3
18 ? cleanHex.split('').map(char => char + char).join('')
19 : cleanHex;
20
21 const r = parseInt(expandedHex.substring(0, 2), 16);
22 const g = parseInt(expandedHex.substring(2, 4), 16);
23 const b = parseInt(expandedHex.substring(4, 6), 16);
24
25 return { r, g, b };
26}
27
28// RGB에서 CMYK로 변환
29function rgbToCmyk(r, g, b) {
30 // RGB 값을 정규화
31 const normalizedR = r / 255;
32 const normalizedG = g / 255;
33 const normalizedB = b / 255;
34
35 // K(검정) 계산
36 const k = 1 - Math.max(normalizedR, normalizedG, normalizedB);
37
38 // 순수한 검정 처리
39 if (k === 1) {
40 return { c: 0, m: 0, y: 0, k: 100 };
41 }
42
43 // C, M, Y 계산
44 const c = ((1 - normalizedR - k) / (1 - k)) * 100;
45 const m = ((1 - normalizedG - k) / (1 - k)) * 100;
46 const y = ((1 - normalizedB - k) / (1 - k)) * 100;
47
48 return {
49 c: Math.round(c),
50 m: Math.round(m),
51 y: Math.round(y),
52 k: Math.round(k * 100)
53 };
54}
55
56// 사용 예
57const rgb = { r: 255, g: 0, b: 0 }; // 순수한 빨강
58console.log(`Hex: ${rgbToHex(rgb.r, rgb.g, rgb.b)}`);
59console.log(`CMYK:`, rgbToCmyk(rgb.r, rgb.g, rgb.b));
60
1# RGB에서 Hex로 변환
2def rgb_to_hex(r, g, b):
3 return f'#{r:02x}{g:02x}{b:02x}'
4
5# Hex에서 RGB로 변환
6def hex_to_rgb(hex_color):
7 # #가 있는 경우 제거
8 hex_color = hex_color.lstrip('#')
9
10 # 3자리 및 6자리 hex 처리
11 if len(hex_color) == 3:
12 hex_color = ''.join([c*2 for c in hex_color])
13
14 return {
15 'r': int(hex_color[0:2], 16),
16 'g': int(hex_color[2:4], 16),
17 'b': int(hex_color[4:6], 16)
18 }
19
20# RGB에서 CMYK로 변환
21def rgb_to_cmyk(r, g, b):
22 # RGB 값을 정규화
23 r_norm = r / 255.0
24 g_norm = g / 255.0
25 b_norm = b / 255.0
26
27 # K(검정) 계산
28 k = 1 - max(r_norm, g_norm, b_norm)
29
30 # 순수한 검정 처리
31 if k == 1:
32 return {'c': 0, 'm': 0, 'y': 0, 'k': 100}
33
34 # C, M, Y 계산
35 c = ((1 - r_norm - k) / (1 - k)) * 100
36 m = ((1 - g_norm - k) / (1 - k)) * 100
37 y = ((1 - b_norm - k) / (1 - k)) * 100
38
39 return {
40 'c': round(c),
41 'm': round(m),
42 'y': round(y),
43 'k': round(k * 100)
44 }
45
46# 사용 예
47rgb = {'r': 0, 'g': 128, 'b': 255} # 하늘색
48hex_color = rgb_to_hex(rgb['r'], rgb['g'], rgb['b'])
49cmyk = rgb_to_cmyk(rgb['r'], rgb['g'], rgb['b'])
50
51print(f"Hex: {hex_color}")
52print(f"CMYK: C={cmyk['c']}%, M={cmyk['m']}%, Y={cmyk['y']}%, K={cmyk['k']}%")
53
1public class ColorConverter {
2 // RGB에서 Hex로 변환
3 public static String rgbToHex(int r, int g, int b) {
4 return String.format("#%02x%02x%02x", r, g, b);
5 }
6
7 // Hex에서 RGB로 변환
8 public static int[] hexToRgb(String hexColor) {
9 // #가 있는 경우 제거
10 if (hexColor.startsWith("#")) {
11 hexColor = hexColor.substring(1);
12 }
13
14 // 3자리 및 6자리 hex 처리
15 if (hexColor.length() == 3) {
16 String expandedHex = "";
17 for (char c : hexColor.toCharArray()) {
18 expandedHex += c + String.valueOf(c);
19 }
20 hexColor = expandedHex;
21 }
22
23 int r = Integer.parseInt(hexColor.substring(0, 2), 16);
24 int g = Integer.parseInt(hexColor.substring(2, 4), 16);
25 int b = Integer.parseInt(hexColor.substring(4, 6), 16);
26
27 return new int[]{r, g, b};
28 }
29
30 // RGB에서 CMYK로 변환
31 public static double[] rgbToCmyk(int r, int g, int b) {
32 // RGB 값을 정규화
33 double normalizedR = r / 255.0;
34 double normalizedG = g / 255.0;
35 double normalizedB = b / 255.0;
36
37 // K(검정) 계산
38 double k = 1 - Math.max(Math.max(normalizedR, normalizedG), normalizedB);
39
40 // 순수한 검정 처리
41 if (k == 1) {
42 return new double[]{0, 0, 0, 100};
43 }
44
45 // C, M, Y 계산
46 double c = ((1 - normalizedR - k) / (1 - k)) * 100;
47 double m = ((1 - normalizedG - k) / (1 - k)) * 100;
48 double y = ((1 - normalizedB - k) / (1 - k)) * 100;
49
50 return new double[]{
51 Math.round(c),
52 Math.round(m),
53 Math.round(y),
54 Math.round(k * 100)
55 };
56 }
57
58 public static void main(String[] args) {
59 // 사용 예
60 int r = 75, g = 0, b = 130; // 보라색
61 String hexColor = rgbToHex(r, g, b);
62 double[] cmyk = rgbToCmyk(r, g, b);
63
64 System.out.println("Hex: " + hexColor);
65 System.out.printf("CMYK: C=%.0f%%, M=%.0f%%, Y=%.0f%%, K=%.0f%%\n",
66 cmyk[0], cmyk[1], cmyk[2], cmyk[3]);
67 }
68}
69
참고 문헌
-
Agoston, M. K. (2013). Computer Graphics and Geometric Modeling: Implementation and Algorithms. Springer Science & Business Media.
-
Adobe Systems. (2000). Adobe RGB (1998) Color Image Encoding. Adobe Systems Incorporated.
-
Fairchild, M. D. (2013). Color Appearance Models. John Wiley & Sons.
-
Hunt, R. W. G., & Pointer, M. R. (2011). Measuring Colour. John Wiley & Sons.
-
Poynton, C. (2012). Digital Video and HD: Algorithms and Interfaces. Elsevier.
-
W3C. (2018). CSS Color Module Level 4. W3C Working Draft. Retrieved from https://www.w3.org/TR/css-color-4/
-
Web Content Accessibility Guidelines (WCAG) 2.1. (2018). Retrieved from https://www.w3.org/TR/WCAG21/
-
International Color Consortium. (2004). Specification ICC.1:2004-10 (Profile version 4.2.0.0). Retrieved from http://www.color.org/specification/ICC1v42_2006-05.pdf
오늘 우리의 색상 선택기를 사용해 보세요!
프로젝트에 완벽한 색상을 찾을 준비가 되셨나요? 우리의 사용자 친화적인 색상 선택기는 색상을 선택하고 조정하며 서로 다른 형식 간에 변환하는 것을 쉽게 만듭니다. 웹사이트 디자인, 디지털 아트 제작 또는 인쇄 자료 계획 등, 우리의 도구는 필요한 정밀성과 유연성을 제공합니다.
지금 색상 실험을 시작하고 디자인을 한 단계 끌어올리세요!
피드백
피드백 토스트를 클릭하여 이 도구에 대한 피드백을 시작하세요.
관련 도구
귀하의 작업 흐름에 유용할 수 있는 더 많은 도구를 발견하세요.