Doubleupai commited on
Commit
47e9963
·
verified ·
1 Parent(s): 3e6b1b1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -5
app.py CHANGED
@@ -1,22 +1,48 @@
 
1
  from PIL import Image, ImageDraw, ImageFont
2
  import gradio as gr
 
 
 
 
 
 
 
 
 
3
 
4
  def generate_logo(text, font_size, background_color, text_color):
5
- # Создаем изображение с белым фоном
 
 
 
6
  width, height = 400, 200
7
  image = Image.new('RGB', (width, height), background_color)
8
 
9
  # Создаем объект для рисования
10
  draw = ImageDraw.Draw(image)
11
 
 
 
 
 
 
12
  # Загружаем шрифт
13
  try:
14
- font = ImageFont.truetype("arial.ttf", font_size)
15
  except IOError:
16
  font = ImageFont.load_default()
17
 
18
  # Рассчитываем положение текста
19
- text_width, text_height = draw.textsize(text, font=font)
 
 
 
 
 
 
 
 
20
  x = (width - text_width) / 2
21
  y = (height - text_height) / 2
22
 
@@ -32,14 +58,14 @@ def generate_logo(text, font_size, background_color, text_color):
32
  iface = gr.Interface(
33
  fn=generate_logo,
34
  inputs=[
35
- gr.Textbox(label="Текст логотипа"),
36
  gr.Slider(minimum=10, maximum=100, value=40, label="Размер шрифта"),
37
  gr.ColorPicker(label="Цвет фона", value="#FFFFFF"),
38
  gr.ColorPicker(label="Цвет текста", value="#000000")
39
  ],
40
  outputs=gr.Image(label="Сгенерированный логотип"),
41
  title="Генератор логотипов",
42
- description="Создайте простой логотип с текстом."
43
  )
44
 
45
  # Запускаем приложение
 
1
+ from fontTools.ttLib import TTFont
2
  from PIL import Image, ImageDraw, ImageFont
3
  import gradio as gr
4
+ import time
5
+ import os
6
+
7
+ def check_font(font_path):
8
+ try:
9
+ font = TTFont(font_path)
10
+ return True
11
+ except:
12
+ return False
13
 
14
  def generate_logo(text, font_size, background_color, text_color):
15
+ # Задержка 12 секунд
16
+ time.sleep(12)
17
+
18
+ # Создаем изображение с заданным фоном
19
  width, height = 400, 200
20
  image = Image.new('RGB', (width, height), background_color)
21
 
22
  # Создаем объект для рисования
23
  draw = ImageDraw.Draw(image)
24
 
25
+ # Путь к шрифту
26
+ font_path = "arial.ttf"
27
+ if not os.path.exists(font_path) or not check_font(font_path):
28
+ font_path = None # Используем стандартный шрифт
29
+
30
  # Загружаем шрифт
31
  try:
32
+ font = ImageFont.truetype(font_path, font_size) if font_path else ImageFont.load_default()
33
  except IOError:
34
  font = ImageFont.load_default()
35
 
36
  # Рассчитываем положение текста
37
+ try:
38
+ # Для Pillow >= 10.0.0 используем textbbox вместо textsize
39
+ bbox = draw.textbbox((0, 0), text, font=font)
40
+ text_width = bbox[2] - bbox[0]
41
+ text_height = bbox[3] - bbox[1]
42
+ except AttributeError:
43
+ # Для старых версий Pillow
44
+ text_width, text_height = draw.textsize(text, font=font)
45
+
46
  x = (width - text_width) / 2
47
  y = (height - text_height) / 2
48
 
 
58
  iface = gr.Interface(
59
  fn=generate_logo,
60
  inputs=[
61
+ gr.Textbox(label="Текст логотипа", value="My Logo"),
62
  gr.Slider(minimum=10, maximum=100, value=40, label="Размер шрифта"),
63
  gr.ColorPicker(label="Цвет фона", value="#FFFFFF"),
64
  gr.ColorPicker(label="Цвет текста", value="#000000")
65
  ],
66
  outputs=gr.Image(label="Сгенерированный логотип"),
67
  title="Генератор логотипов",
68
+ description="Создайте простой логотип с текстом. Логотип будет сгенерирован через 12 секунд."
69
  )
70
 
71
  # Запускаем приложение