Update app.py
Browse files
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=
|
197 |
draw = ImageDraw.Draw(image)
|
198 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
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(
|