πŸ“Έ Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ с тСкстом Π² Python: пошаговоС руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…! 🐍

Для создания изобраТСния с тСкстом Π² Python Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Pillow. Π’ΠΎΡ‚ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:

    from PIL import Image, ImageDraw, ImageFont

    # Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ опрСдСляСм Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π°
    image = Image.new('RGB', (300, 200), 'white')

    # ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΡˆΡ€ΠΈΡ„Ρ‚ ΠΈ Π·Π°Π΄Π°Π΅ΠΌ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€
    font = ImageFont.truetype('arial.ttf', 20)

    # Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-Ρ€ΠΈΡΠΎΠ²Π°Π»ΡŒΡ‰ΠΈΠΊ
    draw = ImageDraw.Draw(image)

    # Π—Π°Π΄Π°Π΅ΠΌ тСкст ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹
    text = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!"
    text_position = (50, 80)

    # РисуСм тСкст Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ
    draw.text(text_position, text, fill='black', font=font)

    # БохраняСм ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
    image.save('image_with_text.png')
    
Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Pillow для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ изобраТСния с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈ Ρ†Π²Π΅Ρ‚ΠΎΠΌ Ρ„ΠΎΠ½Π°. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΡˆΡ€ΠΈΡ„Ρ‚ ΠΈ Π·Π°Π΄Π°Π΅ΠΌ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-Ρ€ΠΈΡΠΎΠ²Π°Π»ΡŒΡ‰ΠΈΠΊ ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΉ тСкст ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹. Π—Π°Ρ‚Π΅ΠΌ рисуСм тСкст Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΈ сохраняСм Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° save().

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ с тСкстом Π² Python

Python прСдоставляСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ возмоТности для создания ΠΈ манипулирования изобраТСниями с тСкстом. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим нСсколько популярных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² создания ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с тСкстом Π² Python.

1. ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Pillow

Pillow являСтся популярной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² Python.

from PIL import Image, ImageDraw, ImageFont

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ
image = Image.new('RGB', (500, 200), (255, 255, 255))

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ImageDraw для рисования Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ
draw = ImageDraw.Draw(image)

# Π—Π°Π΄Π°Π΅ΠΌ ΡˆΡ€ΠΈΡ„Ρ‚ для тСкста
font = ImageFont.truetype('arial.ttf', 50)

# ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ тСкст ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹
text = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!"
text_width, text_height = draw.textsize(text, font)
text_x = (image.width - text_width) // 2
text_y = (image.height - text_height) // 2

# РисуСм тСкст Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ
draw.text((text_x, text_y), text, font=font, fill=(0, 0, 0))

# БохраняСм ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
image.save('image_with_text.png')

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создали Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 500x200 пиксСлСй с Π±Π΅Π»Ρ‹ΠΌ Ρ„ΠΎΠ½ΠΎΠΌ. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Π·Π°Π΄Π°Π»ΠΈ ΡˆΡ€ΠΈΡ„Ρ‚ ΠΈ тСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ. ПослС этого ΠΌΡ‹ располоТили тСкст ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ изобраТСния ΠΈ нарисовали Π΅Π³ΠΎ. НаконСц, ΠΌΡ‹ сохранили ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с тСкстом Π½Π° диск ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ "image_with_text.png".

2. ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ OpenCV

OpenCV - это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ зрСния, которая Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована для создания ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с тСкстом Π² Python.

import cv2
import numpy as np

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ пустоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
image = np.zeros((200, 500, 3), dtype=np.uint8)

# Π—Π°Π΄Π°Π΅ΠΌ Ρ†Π²Π΅Ρ‚ ΠΈ ΡˆΡ€ΠΈΡ„Ρ‚ для тСкста
font_color = (255, 255, 255)
font = cv2.FONT_HERSHEY_SIMPLEX
font_scale = 1

# ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ тСкст ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹
text = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!"
text_width, text_height = cv2.getTextSize(text, font, font_scale, 1)[0]
text_x = (image.shape[1] - text_width) // 2
text_y = (image.shape[0] + text_height) // 2

# РисуСм тСкст Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ
cv2.putText(image, text, (text_x, text_y), font, font_scale, font_color, 2)

# БохраняСм ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
cv2.imwrite('image_with_text.png', image)

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создали пустоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ np.zeros(). Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Π·Π°Π΄Π°Π»ΠΈ Ρ†Π²Π΅Ρ‚ ΠΈ ΡˆΡ€ΠΈΡ„Ρ‚ для тСкста, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ тСкст ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹, ΠΈ нарисовали тСкст Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ cv2.putText(). НаконСц, ΠΌΡ‹ сохранили ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с тСкстом Π½Π° диск.

3. ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ matplotlib

Matplotlib - это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, которая Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована для создания ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с тСкстом Π² Python.

import matplotlib.pyplot as plt

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΠΈΠ³ΡƒΡ€Ρƒ ΠΈ оси
fig, ax = plt.subplots()

# ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ оси
ax.axis('off')

# Π—Π°Π΄Π°Π΅ΠΌ тСкст ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹
text = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!"
text_x = 0.5
text_y = 0.5

# Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ тСкст Π½Π° Ρ„ΠΈΠ³ΡƒΡ€Ρƒ
ax.text(text_x, text_y, text, fontsize=50, ha='center', va='center')

# БохраняСм Ρ„ΠΈΠ³ΡƒΡ€Ρƒ ΠΊΠ°ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
plt.savefig('image_with_text.png')

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создали Π½ΠΎΠ²ΡƒΡŽ Ρ„ΠΈΠ³ΡƒΡ€Ρƒ ΠΈ оси с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ plt.subplots(). Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ оси ΠΈ Π·Π°Π΄Π°Π»ΠΈ тСкст ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹. ПослС этого ΠΌΡ‹ Π²Ρ‹Π²Π΅Π»ΠΈ тСкст Π½Π° Ρ„ΠΈΠ³ΡƒΡ€Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ax.text(). НаконСц, ΠΌΡ‹ сохранили ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ Ρ„ΠΈΠ³ΡƒΡ€Ρƒ с тСкстом ΠΊΠ°ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° диск.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли нСсколько способов создания ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с тСкстом Π² Python. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ подходящий для Π²Π°ΡˆΠΈΡ… потрСбностСй ΠΈ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ созданию ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ ΠΊΡ€Π΅Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ΄Π°.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

ΠΠ•Π™Π ΠžΠ‘Π•Π’Π˜ + PYTHON | ГСнСрация ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ· тСкста | OpenAI, ChatGPT

PILLOW PYTHON [ 8 ] | Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ тСкста Π½Π° изобраТСниях

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ тСкста Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ python opencv

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Π¦Π΅Π½Π° Π½Π° альбиносового королСвского ΠΏΠΈΡ‚ΠΎΠ½Π°: ΡƒΠ·Π½Π°ΠΉΡ‚Π΅ сколько стоит

πŸ”‘ Π§Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Python? 🐍 Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

πŸ” Как вывСсти ряд чисСл Π² Python: простыС ΠΈ понятныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… πŸš€

πŸ“Έ Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ с тСкстом Π² Python: пошаговоС руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…! 🐍

πŸ”Ž Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π½Π° пустой Ρ„Π°ΠΉΠ» python? πŸβš™οΈ

πŸ”Ž Как пСрСвСсти ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ систСмы Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство!

πŸ”Ž Как ΡƒΠ·Π½Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ массива Π² Python? ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для подсчСта количСства элСмСнтов