Найдите контраст между двумя цветами [закрыто]Python

Программы на Python
Anonymous
Найдите контраст между двумя цветами [закрыто]

Сообщение Anonymous »

Я хотел бы написать функцию в Python, которая сравнивает два цвета. Допустим, у меня есть цвет фона и цвет шрифта. И я хочу проверить, имеет ли шрифт достаточно контраста, чтобы быть видным на фоне. Я получаю цвета в формате RGB, как 16777215 (белый). Как я могу это сделать? < /P>
Какова разница между двумя значениями цвета, например, 16777215 - 12788622 среднее? Разница говорит что -нибудь о контрасте? Белый фон: < /p>
import streamlit as st
import pymupdf

def main():
# File Uploader
uploaded_file = st.file_uploader("Select PDF file: ", type='pdf')

# Search document
if uploaded_file is not None:
find_low_contrast_font(uploaded_file)

def find_low_contrast_font(uploaded_file):
# Open document
doc = pymupdf.open("pdf", uploaded_file.read())

# Loop through the pages
for page_num in range(doc.page_count):
page = doc[page_num]
for text in page.get_text("dict")["blocks"]:
for line in text["lines"]:
for span in line["spans"]:
if contrast_is_low(span["color"]):
st.write(f"Low contrast font on page {page_num + 1}: {span['text']}")

# Close document
doc.close()

def contrast_is_low(font_color):
background_color = 16777215 # White
minimum_distance = 40 # (DF,DF,DF) / (223,223,223) / 14671839 / light grey: distance to white is 32
low_contrast = False

background_color_rgb_dict = get_rgb_values_from_integer(background_color)
background_color_luminance = calculate_luminance(background_color_rgb_dict)

font_color_rgb_dict = get_rgb_values_from_integer(font_color)
font_color_luminance = calculate_luminance(font_color_rgb_dict)

distance = calculate_distance(background_color_luminance, font_color_luminance)

if distance > 8) & 255
red = (rgb_int >> 16) & 255
rgb_dict = {
"r": red,
"g": green,
"b": blue
}
return rgb_dict

def calculate_luminance(rgb_dict):
return 0.299 * rgb_dict["r"] + 0.587 * rgb_dict["g"] + 0.114 * rgb_dict["b"]

def calculate_distance(background_color_luminance, font_color_luminance):
return abs(background_color_luminance - font_color_luminance)

if __name__ == "__main__":
main()


Подробнее здесь: https://stackoverflow.com/questions/793 ... wo-colours

Вернуться в «Python»