Felguk commited on
Commit
d068893
·
verified ·
1 Parent(s): d848284

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -4
app.py CHANGED
@@ -172,7 +172,7 @@ def analyze_txt(file):
172
  return f"Содержимое файла:\n{text}"
173
 
174
  # Функция для генерации изображения с текстом и шрифтом
175
- def generate_text_image(text, font_file, font_size=40):
176
  if not text:
177
  return "Введите текст."
178
 
@@ -193,9 +193,16 @@ def generate_text_image(text, font_file, font_size=40):
193
  font = ImageFont.truetype(font_file.name, font_size)
194
 
195
  # Создаем изображение с текстом
196
- image = Image.new("RGB", (800, 200), color="white")
197
  draw = ImageDraw.Draw(image)
198
- draw.text((10, 10), text, font=font, fill="black")
 
 
 
 
 
 
 
199
 
200
  # Сохраняем изображение во временный файл
201
  with tempfile.NamedTemporaryFile(suffix=".png", delete=False) as tmp_file:
@@ -262,9 +269,16 @@ with gr.Blocks() as demo:
262
  text_input = gr.Textbox(label="Введите текст", placeholder="Введите текст здесь...")
263
  font_input = gr.File(label="Загрузите шрифт (.ttf, .otf, .zip)", file_types=[".ttf", ".otf", ".zip"])
264
  font_size_input = gr.Slider(minimum=10, maximum=100, value=40, label="Размер шрифта")
 
 
265
  generate_button = gr.Button("Сгенерировать изображение")
266
  image_output = gr.Image(label="Результат", type="filepath")
267
- generate_button.click(fn=generate_text_image, inputs=[text_input, font_input, font_size_input], outputs=image_output)
 
 
 
 
 
268
 
269
  # Интерфейс чата
270
  chat_interface = gr.ChatInterface(
 
172
  return f"Содержимое файла:\n{text}"
173
 
174
  # Функция для генерации изображения с текстом и шрифтом
175
+ def generate_text_image(text, font_file, font_size=40, bg_color="#FFFFFF", text_color="#000000"):
176
  if not text:
177
  return "Введите текст."
178
 
 
193
  font = ImageFont.truetype(font_file.name, font_size)
194
 
195
  # Создаем изображение с текстом
196
+ image = Image.new("RGB", (800, 200), color=bg_color)
197
  draw = ImageDraw.Draw(image)
198
+
199
+ # Рассчитываем позицию текста (по центру)
200
+ text_width, text_height = draw.textsize(text, font=font)
201
+ x = (800 - text_width) / 2
202
+ y = (200 - text_height) / 2
203
+
204
+ # Рисуем текст на изображении
205
+ draw.text((x, y), text, font=font, fill=text_color)
206
 
207
  # Сохраняем изображение во временный файл
208
  with tempfile.NamedTemporaryFile(suffix=".png", delete=False) as tmp_file:
 
269
  text_input = gr.Textbox(label="Введите текст", placeholder="Введите текст здесь...")
270
  font_input = gr.File(label="Загрузите шрифт (.ttf, .otf, .zip)", file_types=[".ttf", ".otf", ".zip"])
271
  font_size_input = gr.Slider(minimum=10, maximum=100, value=40, label="Размер шрифта")
272
+ bg_color_input = gr.ColorPicker(label="Цвет фона", value="#FFFFFF")
273
+ text_color_input = gr.ColorPicker(label="Цвет текста", value="#000000")
274
  generate_button = gr.Button("Сгенерировать изображение")
275
  image_output = gr.Image(label="Результат", type="filepath")
276
+
277
+ generate_button.click(
278
+ fn=generate_text_image,
279
+ inputs=[text_input, font_input, font_size_input, bg_color_input, text_color_input],
280
+ outputs=image_output
281
+ )
282
 
283
  # Интерфейс чата
284
  chat_interface = gr.ChatInterface(