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 중국어 웹사이트의 기타 관련 기사를 참조하세요!