🎨 Как Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠŸΡƒΡ‚ΠΈΠ½Π° Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ 🐍: пошаговая инструкция для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Как Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠŸΡƒΡ‚ΠΈΠ½Π° Π½Π° Python

РисованиС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с использованиСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Python являСтся ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ интСрСсным способом для развития Π²Π°ΡˆΠΈΡ… Π½Π°Π²Ρ‹ΠΊΠΎΠ² программирования. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠŸΡƒΡ‚ΠΈΠ½Π°, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Pillow, которая прСдоставляСт возмоТности Ρ€Π°Π±ΠΎΡ‚Ρ‹ с изобраТСниями.

Π’ΠΎΡ‚ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠŸΡƒΡ‚ΠΈΠ½Π° Π½Π° Python:

from PIL import Image, ImageDraw

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 400 x 400
image = Image.new("RGB", (400, 400), "white")
draw = ImageDraw.Draw(image)

# ΠΠ°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΎΠ»ΠΎΠ²Ρƒ ΠŸΡƒΡ‚ΠΈΠ½Π°
draw.ellipse((100, 100, 300, 300), fill="gray", outline="black")

# НарисуйтС Π³Π»Π°Π·Π° ΠŸΡƒΡ‚ΠΈΠ½Π°
draw.ellipse((150, 175, 175, 200), fill="white", outline="black")
draw.ellipse((225, 175, 250, 200), fill="white", outline="black")

# НарисуйтС нос ΠŸΡƒΡ‚ΠΈΠ½Π°
draw.polygon([(175, 225), (225, 225), (200, 250)], fill="gray", outline="black")

# НарисуйтС усы ΠŸΡƒΡ‚ΠΈΠ½Π°
draw.line((175, 225, 150, 250), fill="black", width=2)
draw.line((200, 225, 200, 250), fill="black", width=2)
draw.line((225, 225, 250, 250), fill="black", width=2)

# Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
image.save("putin.jpg")

ПослС выполнСния этого ΠΊΠΎΠ΄Π°, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠŸΡƒΡ‚ΠΈΠ½Π° Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. Π£ вас Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ установлСна Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Pillow, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Π°Π».

НадСюсь, это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ своС собствСнноС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠŸΡƒΡ‚ΠΈΠ½Π° Π½Π° Python!

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

Как Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠŸΡƒΡ‚ΠΈΠ½Π° Π½Π° Python

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ€Ρ‚Ρ€Π΅Ρ‚ Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€Π° ΠŸΡƒΡ‚ΠΈΠ½Π° с использованиСм языка программирования Python. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ рисования, ΠΌΡ‹ смоТСм ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ΅Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠŸΡ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚Π°.

Π¨Π°Π³ 1: ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° окруТСния

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ рисованиС, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас установлСн Python Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ нСсколько ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΠΌ Π² создании изобраТСния. Π’ΠΎΡ‚ нСсколько ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΌ понадобятся:

  • matplotlib
  • numpy
  • PIL (Python Imaging Library)

УстановитС эти ΠΌΠΎΠ΄ΡƒΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ pip install module_name, Π·Π°ΠΌΠ΅Π½ΠΈΠ² module_name Π½Π° названия ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅.

Π¨Π°Π³ 2: Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° изобраТСния ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ шагом являСтся Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° изобраТСния Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€Π° ΠŸΡƒΡ‚ΠΈΠ½Π°. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ PIL для этой Π·Π°Π΄Π°Ρ‡ΠΈ.


from PIL import Image

image = Image.open('putin.jpg')

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» putin.jpg находится Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Ρ‡Ρ‚ΠΎ ΠΈ ваш скрипт Python.

ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ изобраТСния ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСсколько ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ рисованиС. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ изобраТСния ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Ρ‡Π΅Ρ€Π½ΠΎ-Π±Π΅Π»Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:


# ИзмСнСниС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° изобраТСния
image = image.resize((500, 500))

# ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Ρ‡Π΅Ρ€Π½ΠΎ-Π±Π΅Π»Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚
image = image.convert('L')

Π¨Π°Π³ 3: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΡ€Ρ‚Ρ€Π΅Ρ‚Π°

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΡ€Ρ‚Ρ€Π΅Ρ‚ Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€Π° ΠŸΡƒΡ‚ΠΈΠ½Π° с использованиСм модуля matplotlib.

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ графичСскоС ΠΎΠΊΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ plt.figure(). Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ imshow() для отобраТСния изобраТСния Π½Π° холстС.


import matplotlib.pyplot as plt

plt.figure()
plt.imshow(image, cmap='gray')
plt.axis('off')
plt.show()

ПослС выполнСния этого ΠΊΠΎΠ΄Π° Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΡ€Ρ‚Ρ€Π΅Ρ‚ Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€Π° ΠŸΡƒΡ‚ΠΈΠ½Π°.

Π¨Π°Π³ 4: Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ большС Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ ΠΊ ΠΏΠΎΡ€Ρ‚Ρ€Π΅Ρ‚Ρƒ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ модуля matplotlib. НапримСр, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ эффСкты освСщСния, Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΡƒ контрастности ΠΈ Ρ‚. Π΄.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ добавляСт эффСкт освСщСния:


plt.figure()
plt.imshow(image, cmap='gray')

# Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ эффСкта освСщСния
image = image.point(lambda x: x * 1.2)

plt.imshow(image, cmap='gray', alpha=0.5)
plt.axis('off')
plt.show()

Π¨Π°Π³ 5: Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ изобраТСния

НаконСц, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚Ρ€Π΅Ρ‚ Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€Π° ΠŸΡƒΡ‚ΠΈΠ½Π°, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ savefig() модуля matplotlib.


plt.figure()
plt.imshow(image, cmap='gray')
plt.axis('off')
plt.savefig('putin_portrait.png')

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ сохранСнноС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ putin_portrait.png Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Ρ‡Ρ‚ΠΎ ΠΈ ваш скрипт Python.

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

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Python для создания ΠΏΠΎΡ€Ρ‚Ρ€Π΅Ρ‚Π° Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€Π° ΠŸΡƒΡ‚ΠΈΠ½Π°. ΠœΡ‹ использовали ΠΌΠΎΠ΄ΡƒΠ»ΠΈ PIL ΠΈ matplotlib для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ изобраТСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ для создания ΠΏΠΎΡ€Ρ‚Ρ€Π΅Ρ‚Π° с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ дСталями. НадСюсь, этот ΡƒΡ€ΠΎΠΊ Π±Ρ‹Π» ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ ΠΈ Π²Π΄ΠΎΡ…Π½ΠΎΠ²Π»ΡΡŽΡ‰ΠΈΠΌ для вас!

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

Рисунок ΠŸΡƒΡ‚ΠΈΠ½Π°

ΠŸΡƒΡ‚ΠΈΠ½ | ΠŸΠΎΡ€Ρ‚Ρ€Π΅Ρ‚ ΠŸΡƒΡ‚ΠΈΠ½Π° | РискночСк ΠšΠ°Ρ€Π°Π½Π΄Π°ΡˆΠΈΠΊΠΎΠΌ | Π›Π΅Π³ΠΊΠΎ ΠΈ ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΈ БСсплатно

ΠŸΡƒΡ‚ΠΈΠ½ Π’. Π’., ΠΊΠ°ΠΊ рисованный Π²ΠΈΠ΄Π΅ΠΎΠΏΠΎΡ€Ρ‚Ρ€Π΅Ρ‚ ΠŸΡƒΡ‚ΠΈΠ½Π° Π’. Π’.

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

πŸ“§ Как ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΡƒΡŽ ΠΏΠΎΡ‡Ρ‚Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python? Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ random Π² Python? ✨ РазбираСмся с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ random Π² Python

πŸ”’ Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ввСсти числа Π² строку python? 🐍

🎨 Как Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠŸΡƒΡ‚ΠΈΠ½Π° Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ 🐍: пошаговая инструкция для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

⌨️ Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ макрос Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅: пошаговоС руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ lambda Π² Python? Π£Π·Π½Π°ΠΉΡ‚Π΅ ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ, синтаксисС ΠΈ прСимущСствах lambda-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Python

πŸ”— Как Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ строку ΠΈ число? ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ Π³Π°ΠΉΠ΄ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹