1. Şəkil üzərinə mətn əlavə etmək
Pillow-da şəkilə mətn əlavə etmək üçün ImageDraw
modulundan istifadə olunur. Bu modul text()
metodunu təmin edir ki, bu da tam müəyyən olunmuş koordinatlarda mətn yerləşdirmək üçün istifadə olunur.
Sadə mətn əlavə etmək
from PIL import ImageDraw, ImageFont
# Çəkmək üçün obyekt yaradırıq
draw = ImageDraw.Draw(image)
# Şəkilə mətn əlavə etmək
text = "Mətn nümunəsi"
draw.text((50, 50), text, fill="white")
# Mətn ilə şəkli saxlamaq
image.save("text_example.jpg")
Bu nümunədə, "Mətn nümunəsi"
mətni (50, 50)
koordinatlarına əlavə olunur. fill
parametri mətnin rəngini təyin edir, hansı ki, dəyərləri sətir şəklində ola bilər ("white"
, "black"
) və ya RGB formatda ((255, 255, 255)
).
Mətnin şriftini tənzimləmək
Default olaraq Pillow standart şriftdən istifadə edir. Başqa bir şrift seçmək və onun ölçüsünü müəyyən etmək üçün ImageFont.truetype()
-dən istifadə edə bilərsiniz. Şrift faylının sisteminizdə mövcud olmasına əmin olun.
# Şrift yükləmə
font = ImageFont.truetype("arial.ttf", 36)
# Xüsusi şrift ilə mətn əlavə etmək
draw.text((50, 100), text, font=font, fill="yellow")
image.save("text_custom_font_example.jpg")
Burada biz arial.ttf
şriftindən və 36 piksel ölçüsündən istifadə edirik. Əgər lazım olan şrift mövcud deyilsə, onu yükləyib faylın yolunu göstərə bilərsiniz.
2. Su nişanının əlavə edilməsi
Su nişanı — bu, şəklin üzərinə yerləşdirilən şəffaf mətn və ya şəkildir, bununla surət çıxarılmasının qarşısını ala bilərsiniz. Bununla loqolar və ya müəllifə aid məlumat əlavə etmək mümkündür. Pillow ilə sadə mətnli su nişanı yarada bilərsiniz.
Mətnli su nişanı
# Çəkmə obyekti yaradırıq
draw = ImageDraw.Draw(image)
# Su nişanı üçün mətn və şrift
watermark_text = "© 2023 My Company"
font = ImageFont.truetype("arial.ttf", 24)
# Su nişanının yerləşdirilməsi üçün koordinatlar müəyyən edilir
width, height = image.size
text_width, text_height = draw.textsize(watermark_text, font=font)
x = width - text_width - 10
y = height - text_height - 10
# Su nişanını sağ alt küncə əlavə edirik
draw.text((x, y), watermark_text, font=font, fill=(255, 255, 255, 128))
image.save("watermarked_example.jpg")
Bu nümunədə mətnli su nişanı şəklin sağ alt küncünə əlavə edilir. Biz x
və y
koordinatlarını hesablayırıq ki, su nişanı şəklin kənarından bir az uzaq yerləşsin.
3. Qrafik elementlərin əlavə olunması
Pillow, mətnlərdən əlavə, xətlər, düzbucaqlılar, çevrələr və ellipslər kimi əsas qrafik elementləri çəkməyə imkan verir. Bu, çərçivələr yaratmaq, sahələri seçmək və həndəsi fiqurlar əlavə etmək üçün faydalıdır.
Xətlərin çəkilməsi
Xətlərin çəkilməsi üçün line()
metodundan istifadə edin. Bu metod xəttin başlanğıc və son koordinatlarını qəbul edir.
# Xətti sol yuxarı küncdən sağ alt küncə çəkirik
draw.line((0, 0, width, height), fill="red", width=5)
image.save("line_example.jpg")
Bu kod, şəkilin sol yuxarı küncündən sağ alt küncə qədər diaqonal bir qırmızı xətt çəkir.
Düzbucaqlıların çəkilməsi
Düzbucaqlı rectangle()
metodu ilə çəkilir. Bu metod sol yuxarı və sağ alt künclərin koordinatlarını qəbul edir.
# Düzbucaqlı çəkirik
draw.rectangle((50, 50, 200, 200), outline="blue", width=3)
image.save("rectangle_example.jpg")
Burada mavi konturlu və 3 piksel xətt qalınlığı olan bir düzbucaqlı yaradılır. Daha əlavə, fill
parametrini istifadə edərək, düzbucaqlını rənglə doldura bilərsiniz.
Çevrələrin və ellipslərin çəkilməsi
ellipse()
metodu çevrə və ellipslər çəkməyə imkan verir. Çevrə çəkmək üçün en və hündürlük üçün eyni ölçüləri göstərin.
# Çevrə çəkirik
draw.ellipse((150, 150, 250, 250), outline="green", width=4)
image.save("circle_example.jpg")
Bu nümunədə (200, 200)
nöqtəsində mərkəzi olan bir çevrə yaradılır. En və hündürlük üçün fərqli ölçülər göstərsəniz, ellips alacaqsınız.
Çoxbucaqlıların çəkilməsi
Çoxbucaqları çəkmək üçün polygon()
metodundan istifadə edin. Bu metod fiqurun zirvələrinin koordinatlarını qəbul edir.
# Üçbucaq çəkirik
draw.polygon([(100, 100), (150, 50), (200, 100)], outline="purple", fill="orange")
image.save("polygon_example.jpg")
Bu kod narıncı dolğulu və bənövşəyi konturlu bir üçbucaq çəkir. Fiquru yaratmaq üçün zirvələrinin koordinatlarını daxil edərək istənilən forma əldə edə bilərsiniz.
4. Nümunələr
Mətn və qrafik ilə kompozisiya yaradılması nümunəsi
Yuxarıda sadalananların hamısını birləşdirək və mətni, su nişanını və qrafik elementləri olan bir şəkil yaradaq.
from PIL import Image, ImageDraw, ImageFont
# Şəklin yüklənməsi
image = Image.open("example.jpg")
draw = ImageDraw.Draw(image)
# Mətnin əlavə edilməsi
font = ImageFont.truetype("arial.ttf", 36)
draw.text((50, 50), "Demo Text", font=font, fill="yellow")
# Su nişanının sağ alt küncə əlavə edilməsi
watermark_text = "© 2023 My Company"
font_watermark = ImageFont.truetype("arial.ttf", 24)
width, height = image.size
text_width, text_height = draw.textsize(watermark_text, font=font_watermark)
x = width - text_width - 10
y = height - text_height - 10
draw.text((x, y), watermark_text, font=font_watermark, fill=(255, 255, 255, 128))
# Xətt, düzbucaqlı və dairə çəkilməsi
draw.line((0, 0, width, height), fill="red", width=5)
draw.rectangle((50, 50, 200, 200), outline="blue", width=3)
draw.ellipse((150, 150, 250, 250), outline="green", width=4)
# Nəticənin saxlanması
image.save("final_composition_example.jpg")
Bu nümunə mətni, su nişanını və bir neçə qrafik elementi (xətt, düzbucaqlı və dairə) ehtiva edən bir şəkil yaradır. Belə kompozisiyalar təqdimatlar, bloqlar və peşəkar tərtibatlı şəkillərin yaradılması üçün istifadə edilə bilər.
Praktiki tətbiqlər
- Şəkillərin markalanması və qorunması: Su nişanları şəkilləri icazəsiz istifadədən qorumağa kömək edir, mətn isə müəllif və ya şirkət haqqında məlumat əlavə etməyə imkan yaradır.
- Sosial şəbəkələr üçün şəkillərin hazırlanması: Mətn və qrafik əlavə edilməsi şəkilləri nəşrə hazırlamağa, onlara əlavə məlumat qatmağa imkan verir.
- İnfografika və məlumat vizuallaşdırması: Xəttlər və fiqurlar kimi qrafik elementlərdən istifadə etmək sadə qrafiklər və diaqramlar yaratmağa imkan verir. Bu, Pillow kitabxanasını infografika yaradılması üçün faydalı edir.
GO TO FULL VERSION