>웹 프론트엔드 >CSS 튜토리얼 >Python에서 RGB 색상을 영어 색상 이름으로 변환하는 방법은 무엇입니까?

Python에서 RGB 색상을 영어 색상 이름으로 변환하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-30 15:08:021093검색

How to Convert RGB Color to English Color Name in Python?

Python에서 RGB 색상을 영어 색상 이름으로 변환

RGB 값의 튜플이 주어지면 이를 인간- 읽을 수 있는 영어 색상 이름입니다. Python을 사용하여 이 작업을 어떻게 수행할 수 있습니까?

솔루션

RGB 색상을 해당 영어 색상 이름으로 변환하려면 webcolors 라이브러리 사용을 고려하세요. RGB 3색을 입력으로 사용하고 일치하는 색상이 있으면 정규화된 색상 이름을 반환하는 rgb_to_name() 함수를 제공합니다.

<code class="python">import webcolors

# Get RGB color from an image
im = Image.open("test.jpg")
n, color = max(im.getcolors(im.size[0]*im.size[1]))

# Convert to English color name
color_name = webcolors.rgb_to_name(color, spec='css3')
print(color_name)  # Output: 'cadetblue'</code>

가장 가까운 색상 이름

완벽하게 일치하는 색상을 찾을 수 없는 경우 다음 코드를 사용하여 가장 가까운 색상 이름을 찾을 수 있습니다.

<code class="python">def closest_colour(requested_colour):
    # Iterate through RGB space and calculate Euclidian distance
    min_distances = {}
    for hex_code, name in webcolors.CSS3_HEX_TO_NAMES.items():
        r, g, b = webcolors.hex_to_rgb(hex_code)
        dist = sum((n - c for n, c in zip(requested_colour, (r, g, b))))**2
        min_distances[dist] = name

    # Return the closest color name
    return min_distances[min(min_distances.keys())]</code>

완전 기능

두 경우를 모두 처리하려면 실제 및 가장 가까운 색상 이름을 반환하는 함수를 정의할 수 있습니다.

<code class="python">def get_colour_name(requested_colour):
    try:
        closest_name = actual_name = webcolors.rgb_to_name(requested_colour)
    except ValueError:
        closest_name = closest_colour(requested_colour)
        actual_name = None

    return actual_name, closest_name</code>

샘플 사용법

<code class="python">color = (119, 172, 152)
actual_name, closest_name = get_colour_name(color)
print("Actual:", actual_name, ", Closest:", closest_name)</code>

출력

실제: 없음, 근접: cadetblue

위 내용은 Python에서 RGB 색상을 영어 색상 이름으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.