CodeGym /Kurslar /Python SELF AZ /Şəkillərin birləşdirilməsi və kombinasiyası

Şəkillərin birləşdirilməsi və kombinasiyası

Python SELF AZ
Səviyyə , Dərs
Mövcuddur

1. Hazırlıq

Kombinasiya üçün şəkillərin yüklənməsi

Bir neçə şəkil ilə işləməyə başlamazdan əvvəl onları yükləmək lazımdır. Pillow JPEG, PNG, BMP, və GIF kimi ən məşhur şəkil formatları ilə işləməyə imkan verir.

Python

from PIL import Image

# Şəkillərin yüklənməsi
background = Image.open("background.jpg")
foreground = Image.open("foreground.png")

Burada biz iki şəkil yükləyirik: fon şəkli və üst-üstə qoyulacaq şəkil. Bəzi metodlar üçün hər iki şəklin eyni ölçüdə olması vacibdir.

2. Şəkillərin üst-üstə qoyulması

paste() metodu

paste() metodu bir şəkli digərinin üzərinə müəyyən koordinatlarda yerləşdirməyə imkan verir. Bu metod bir şəkli digərinin üzərinə qoymaq və ya kollaj effekti yaratmaq lazım olduqda faydalıdır.

Python

# Ön planın ölçüsünü fonun ölçüsünə uyğunlaşdırmaq
foreground = foreground.resize(background.size)

# Şəkli fonun üzərinə yerləşdirmək
background.paste(foreground, (50, 50))  # foreground-u (50, 50) koordinatlarına yerləşdiririk

# Nəticəni saxlamaq
background.save("pasted_image.jpg")

Burada foreground şəkli background üzərinə (50, 50) başlanğıc nöqtəsi ilə yerləşdirilir. Əgər ön plan fonun sərhədlərini keçərsə, o qismən kəsiləcək.

paste() ilə maskadan istifadə etmə

paste() metodu həmçinin maskaları dəstəkləyir, bu da şəffaf sahələri saxlayaraq şəkli qismən yerləşdirməyə imkan verir. Maska L (boz tonlar) və ya RGBA rejimində olmalıdır.

Python

# Maskanın yaradılması
mask = Image.open("mask.png").convert("L")  # Maskanı boz tonlarına çevirmək

# Maskalı şəkildə yerləşdirmə
background.paste(foreground, (50, 50), mask=mask)
background.save("pasted_with_mask.jpg")

mask.png maskası foreground şəklinin hansı hissələrinin görünəcəyini müəyyən edir və şəkilləri bir-birinin üzərinə səliqəli şəkildə yerləşdirməyə imkan verir.

3. Şəkillərin Qarışdırılması

blend() Metodu

blend() metodu iki şəkli müəyyən şəffaflıqla qarışdırmağa imkan verir. Bu metod, iki başlanğıc şəklinin qarışığını təmsil edən yeni bir şəkil obyekti yaradır. blend() istifadə etmək üçün hər iki şəkil eyni ölçüdə olmalıdır.

Şəkillərin Sadə Qarışdırılması

Python

# Şəkillərin ölçüsünü eyni ölçüyə dəyişmək
background = background.resize((500, 500))
foreground = foreground.resize((500, 500))

# Şəkilləri şəffaflıq əmsalı ilə qarışdırmaq
blended_image = Image.blend(background, foreground, alpha=0.5)

# Nəticəni yadda saxlamaq
blended_image.save("blended_image.jpg")

alpha parametri foreground şəklinin şəffaflıq dərəcəsini müəyyən edir. Əgər alpha = 0.5 olarsa, şəkillər bərabər şəkildə qarışdırılır. alpha = 0.0 dəyəri foreground şəklini tamamilə şəffaf edir (yalnız fon görünür), alpha = 1.0 isə fon şəklini tamamilə şəffaf edir (yalnız ön planda olan hissə görünür).

4. Maskadan istifadə edərək şəkillərin kompozisiyası

composite() metodu

composite() metodu maska əsasında iki şəkili birləşdirməyə imkan verir, hansı hissələrin hansı şəkildən görünəcəyini müəyyən edir. Bu metod mürəkkəb kompozisiyalar yaratmaq və bir şəkli digərinə dəqiq şəkildə qoymaq üçün çox uyğundur.

Misal: Şəkilləri birləşdirmək üçün composite() istifadəsi

Python

# Əmin olun ki, həm şəkillər, həm də maska eyni ölçüdədir
background = background.resize((500, 500))
foreground = foreground.resize((500, 500))
mask = mask.resize((500, 500))

# Maskadan istifadə edərək kompozisiya yaradılması
composited_image = Image.composite(foreground, background, mask)

# Şəklin saxlanılması
composited_image.save("composited_image.jpg")

Maska, son nəticədə hansı hissələrin foregroundbackground olacağını müəyyən edir. Maskanın ağ bölgələri foreground-u, qara bölgələri isə background-u göstərir.

5. Nümunələr

paste(), blend()composite() metodlarının birlikdə istifadəsi nümunəsi

İndi gəlin bu metodları bir yerdə istifadə edərək daha mürəkkəb bir kompozisiya yaradaq. Fərz edək ki, bizdə bir fon, bir yarım şəffaf təsvir və maska var.

Python

from PIL import Image

# Şəkillərin yüklənməsi
background = Image.open("background.jpg").resize((500, 500))
foreground = Image.open("foreground.png").resize((500, 500))
mask = Image.open("mask.png").convert("L").resize((500, 500))

# 1. Fonu və ön planı yarım şəffaflıqla qarışdırırıq
blended_image = Image.blend(background, foreground, alpha=0.3)

# 2. Maska ilə son şəkil üzərinə yerləşdirilməsi
final_composite = Image.composite(foreground, blended_image, mask)

# Son nəticəni yadda saxlayırıq
final_composite.save("final_composition.jpg")

Bu nümunə göstərir ki, blend()composite() metodlarını ardıcıl olaraq tətbiq edərək çox qatlı kompozisiyalar yarada bilərik.

Təsvirlərin birləşdirilməsi metodlarının praktiki tətbiqi

  1. Kollajlar yaratmaq: paste() metodu bir neçə təsviri bir kətana əlavə etməyə imkan verir və bu, kollajlar və mozaikalar yaratmağa yararlıdır.
  2. Örtük və şəffaflıq effektləri: blend() metodu şəkillər arasında yumşaq keçidlər yaratmağa imkan verir ki, bu da fotoşəkil düzəltmə və effektlər yaratmaq üçün əlverişlidir.
  3. Maskalarla kompozisiyalar: composite() metodu dəqiq idarə etməyə imkan verir ki, hansı hissələr hansı təsvirin görünəcəyini və maskalardan istifadə edərək mürəkkəb kompozisiyalar yaratmağa imkan yaradır.

Metodların müqayisəsi

Metod Təsvir Tətbiq
paste() Bir təsvirin digərinin üzərinə yerləşdirilməsi Kollajlar, təsvirlərin bir-birinin üzərinə yerləşdirilməsi
blend() İki təsvirin verilən şəffaflıq ilə qarışdırılması Yumşaq keçidlər və örtük effektləri
composite() Maska əsasında iki təsvirin birləşdirilməsi Mürəkkəb kompozisiyalar və dəqiq yerləşdirmə
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION