From 0e32e9d168e071cda80a9b8d83b1716d2a5489d6 Mon Sep 17 00:00:00 2001 From: Artemii Date: Tue, 3 Sep 2024 11:45:29 +1000 Subject: [PATCH 1/3] bug fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Стояла неправильная переменна. Цвета генерировались в любом случае. --- scrolltext_gif/__main__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scrolltext_gif/__main__.py b/scrolltext_gif/__main__.py index 78f2b77..371d484 100644 --- a/scrolltext_gif/__main__.py +++ b/scrolltext_gif/__main__.py @@ -198,7 +198,7 @@ def is_valid_color(color: str | # Генерация палитры rgb_values = [] """RGB-значения для людей без указанного цвета""" - if color_background != 0: + if count_colorless != 0: color_palette = "magma" if data['color_palette'] != "" and data['color_palette'] != []: color_palette = data['color_palette'] From 1ff8fa7d0452a1543821ef64ca4c9998c39d1636 Mon Sep 17 00:00:00 2001 From: Artemii Date: Tue, 3 Sep 2024 11:48:06 +1000 Subject: [PATCH 2/3] decor --- scrolltext_gif/__main__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scrolltext_gif/__main__.py b/scrolltext_gif/__main__.py index 371d484..46ca9d7 100644 --- a/scrolltext_gif/__main__.py +++ b/scrolltext_gif/__main__.py @@ -83,12 +83,12 @@ def is_valid_color(color: str | raise TypeError("Неверное наименование цвета в кавычках") elif isinstance(color, list): - if all((isinstance(color_element, int) and 0 <= color_element <= 255) for color_element in color[0:3]): + if all((isinstance(color_element, int) and 0 <= color_element <= max_color_val) for color_element in color[0:3]): if len(color) == 3: return tuple(color) elif len(color) == 4: - if isinstance(color[3], int) and 0 <= color[3] <= 255: + if isinstance(color[3], int) and 0 <= color[3] <= max_color_val: return tuple(color) elif isinstance(color[3], float) and 0 <= color[3] <= 1: color[3] = int(color[3] * max_color_val) From 8d2cb018c7a0f4988d04f7b3e1f39cf9fd654c7c Mon Sep 17 00:00:00 2001 From: Artemii Date: Tue, 3 Sep 2024 11:49:07 +1000 Subject: [PATCH 3/3] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BD=D0=B0?= =?UTF-8?q?=20=D0=B2=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D1=8C=20=D0=B2=D0=B2=D0=BE=D0=B4=D0=B0=20=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D0=BD=D0=B4=D0=B0=D1=80=D1=82=D0=BD=D0=BE=D0=B3=D0=BE=20=D1=86?= =?UTF-8?q?=D0=B2=D0=B5=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Теперь имена без цвета будут использовать `default_name_color`, если он задан. В случае, если он не задан, или его не будет в конфиге, будет сгенерирована палитра. --- example/example.json | 4 +++- pyproject.toml | 2 +- scrolltext_gif/__main__.py | 26 +++++++++++++++++++------- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/example/example.json b/example/example.json index ab1c47f..e034d36 100644 --- a/example/example.json +++ b/example/example.json @@ -4,11 +4,13 @@ "Name2": "black", "Name3": [255, 0, 0, 255], "Name4": [245, 40, 145, 0.4], - "Name5": "#00FF00" + "Name5": "#00FF00", + "Name6": "" }, "height": 800, "width": 1920, "font_size": 150, + "default_name_color": "", "color_main_text": "", "color_background": "", "first_part": "Спокойной ночи, ", diff --git a/pyproject.toml b/pyproject.toml index 295dbf2..3b3d355 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "scrolltext_gif" -version = "0.9.4.5" +version = "0.9.5" description = "Module for generating gif-s with scrolling vertical text" authors = ["Artemii "] license = "MIT" diff --git a/scrolltext_gif/__main__.py b/scrolltext_gif/__main__.py index 46ca9d7..e1320dc 100644 --- a/scrolltext_gif/__main__.py +++ b/scrolltext_gif/__main__.py @@ -180,6 +180,17 @@ def is_valid_color(color: str | else: color_main_text = is_valid_color(color_main_text) + try: + default_name_color = data['default_name_color'] + if default_name_color != "" and default_name_color != []: + default_name_color = is_valid_color(default_name_color) + else: + default_name_color = None + except: + default_name_color = None + + # Обработка людей + # Обработка цветов людей count_colorless = 0 """Количество людей без цвета""" @@ -188,9 +199,13 @@ def is_valid_color(color: str | for human_name in data['people']: color = data['people'][human_name] if color == "" or color == []: - count_colorless += 1 - color = None - color = is_valid_color(color) + if default_name_color is not None: + color = default_name_color + else: + count_colorless += 1 + color = None + else: + color = is_valid_color(color) name_list.append([human_name.encode("windows-1251").decode("utf-8"), color]) max_len_name = max([global_font.getlength(human[0]) for human in name_list]) """Длина самого длинного имени""" @@ -198,15 +213,13 @@ def is_valid_color(color: str | # Генерация палитры rgb_values = [] """RGB-значения для людей без указанного цвета""" - if count_colorless != 0: + if default_name_color is None: color_palette = "magma" if data['color_palette'] != "" and data['color_palette'] != []: color_palette = data['color_palette'] rgb_values = [tuple(int(layer * 255) for layer in color) for color in sns.color_palette(color_palette, n_colors=(count_colorless // 2 + 1 if count_colorless % 2 != 0 else count_colorless // 2) + 1)] - # TODO: Сделать возможность вводить "Стандартный цвет". Такой цвет, который будет использован для людей без цвета. - # Если такой параметр включён, не генерировать цвета. # Создание людей people_list: list[Person] = [] @@ -227,7 +240,6 @@ def is_valid_color(color: str | else: for human in name_list: people_list.append(Person(human[0], human[1], global_font, start_pos_x, max_len_name)) - # TODO: Сделать задаваемую центровку (кому достанется "выделенный начальный цвет") # for person in people_list: print(person) # ! DEBUG