بکندباز

اضافه کردن متن روی تصویر با استفاده از کتابخانه PIL در پایتون

در پایتون برای باز کردن یک تصویر، ویرایش تصویر و ذخیره آن تصویر در فرمت های مختلف یک کتابخانه اضافی به نام PIL (Python Imaging Library) وجود دارد. با استفاده از کتابخانه PIL می‌توانیم بسیاری از عملیات‌ها را روی تصاویر انجام دهیم، مانند ایجاد یک تصویر جدید، ویرایش یک تصویر موجود، چرخش یک تصویر و غیره. برای افزودن متن باید از روش زیر استفاده کنیم.

روش کار

  • ایمپورت کردن ماژول
  • باز کردن تصویر مورد نظر
  • اضافه کردن ویژگی متن با استفاده از شیء image
  • نمایش تصویر ویرایش شده
  • ذخیره تصویر

سینتکس:

 obj.text( (x,y), Text, font, fill)

پارامترها: 

  • (x, y): این X و Y نشان دهنده موقعیت شروع (به پیکسل) یا مختصات افزودن متن روی یک تصویر است.
  • Text: متن یا پیامی که می خواهیم به تصویر اضافه کنیم.
  • font: نوع فونت و اندازه فونت خاصی که می خواهید به متن بدهید.
  • Fill: برای دادن رنگ فونت به متن شماست.

به غیر از اینها، ما به تعدادی از ماژول های PIL برای انجام این کار نیاز داریم. به ImageDraw نیاز داریم که بتواند گرافیک دوبعدی (اشکال، متن) را به یک تصویر اضافه کند. همچنین، به ماژول ImageFont نیاز داریم تا نوع و اندازه فونت سفارشی را اضافه کند. در زیر پیاده سازی کد مربوط به افزودن متن به تصویر ارائه شده است.

تصویر استفاده شده:

مثال 1: افزودن یک متن ساده به یک تصویر. (بدون فونت سفارشی)

# Importing the PIL library
from PIL import Image
from PIL import ImageDraw

# Open an Image
img = Image.open('car.png')

# Call draw Method to add 2D graphics in an image
I1 = ImageDraw.Draw(img)

# Add Text to an image
I1.text((28, 36), "nice Car", fill=(255, 0, 0))

# Display edited image
img.show()‎

# Save the edited image
img.save("car2.png")

خروجی:

در اینجا می بینید که با موفقیت متنی را به یک تصویر اضافه کردیم اما به دلیل اندازه فونت نامناسب درستی قابل مشاهده نیست. می توانیم پارامتر Font را برای ایجاد یک فونت سفارشی اضافه کنیم.

مثال 2: افزودن یک متن ساده به یک تصویر. (با فونت سفارشی)

# Importing the PIL library
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont

# Open an Image
img = Image.open('car.png')

# Call draw Method to add 2D graphics in an image
I1 = ImageDraw.Draw(img)

# Custom font style and font size
myFont = ImageFont.truetype('FreeMono.ttf', 65)

# Add Text to an image
I1.text((10, 10), "Nice Car", font=myFont, fill =(255, 0, 0))

# Display edited image
img.show()‎

# Save the edited image
img.save("car2.png")

خروجی:

zohreh

مدیر وب سایت بکندباز

دیدگاه‌ها

*
*