1. Şəkillərin kəsilməsi
Kəsmə anlayışı və onun tətbiqi
Beləliklə, gəlin şəkilləri necə kəsmək və çevirmək qaydasını araşdıraq. Bu bacarıq sizə müxtəlif layihələrdə lazım olacaq — veb-saytlar üçün qrafika hazırlamaqdan tutmuş sosial şəbəkələr üçün kontent yaratmağa qədər.
Şəkillərin kəsilməsi — şəkilin lazımsız kənarlarını kəsərək əsas obyektə diqqət yetirmək kimi bir şeydir. Təsəvvür edin ki, siz mükəmməl bir gün batımı şəkli çəkibsiniz, amma kənarlarda maraqlanan insanlar təsadüfən şəkilə düşüb. Kəsmə sizə (virtual olaraq, əlbəttə ki) onlardan məhkəməsiz-mübahisəsiz qurtulmağa kömək edəcək!
crop()
metodu
crop()
metodu, şəkildən kəsmək istədiyiniz düzbucaqlı sahənin koordinatlarını qəbul edir. Koordinatlar dörd dəyər şəklində təyin olunur: (sol, üst, sağ, alt)
.
# Şəkilin kəsilməsi
cropped_image = image.crop((100, 100, 400, 400))
# Kəsilmiş şəkli yadda saxlamaq
cropped_image.save("cropped_example.jpg")
Bu nümunədə şəkil (100, 100)
nöqtəsindəki sol üst küncdən və (400, 400)
nöqtəsindəki sağ alt küncə qədər olan hissə üçün kəsiləcək. Bu metod ilkin şəklin göstərilən hissəsindən yeni bir şəkil yaradır.
Şəklin ölçülərinə əsaslanan dinamik kəsmə
Əgər şəkli mərkəzə doğru kəsmək istəyirsinizsə, kəsmə koordinatlarını onun ölçülərinə əsasən hesablaya bilərsiniz:
width, height = image.size
left = (width - 200) / 2
top = (height - 200) / 2
right = (width + 200) / 2
bottom = (height + 200) / 2
center_cropped_image = image.crop((left, top, right, bottom))
center_cropped_image.save("center_cropped_example.jpg")
Bu kod şəkilin mərkəzində 200x200 piksel ölçüsündə bir hissəni kəsir. Koordinatların hesablanması kəsilmiş sahənin şəkilin mərkəzində yerləşəcəyinə zəmanət verir.
2. Şəkilin döndürülməsi
Şəkilin döndürülməsi onun orientasiyasını dəyişməyə imkan verir, xüsusilə də əgər foto səhv orientasiyada çəkilibsə və ya bədii effekt yaratmaq lazımdırsa.
rotate()
metodu
rotate()
metodu şəkili saat əqrəbi istiqamətinin əksinə müəyyən bucaq altında döndürür. Bucağı dərəcə ilə təyin edirik və metod yeni döndürülmüş şəkil yaradır.
# Şəkili saat əqrəbi istiqamətinin əksinə 90 dərəcə döndürmək
rotated_image = image.rotate(90)
rotated_image.save("rotated_90_example.jpg")
Bu nümunədə şəkil saat əqrəbinin əksinə 90 dərəcə döndəriləcək. Həmçinin, istədiyiniz nəticəyə çatmaq üçün digər döndürmə bucaqlarını (məsələn, 45, 180 və ya 270 dərəcə) təyin edə bilərsiniz.
Döndürmə zamanı ağ sahələrin idarə olunması
Varsayılan olaraq, rotate()
şəkil kənarlarında ağ sahələr (və ya RGBA rejimində şəffaf sahələr) əlavə edir ki, bütün məzmun saxlanılsın. Əgər istəyirsinizsə ki, şəkil boş sahələr olmadan tam kadrı doldursun, expand=True
parametrindən istifadə edin.
# Şəkili genişləndirərək döndürmək ki, o, tam kadrı doldursun
rotated_expanded_image = image.rotate(45, expand=True)
rotated_expanded_image.save("rotated_expanded_example.jpg")
Bu halda Pillow şəkilin bütün məzmununu yerləşdirmək üçün ölçülərini artıracaq ki, bu da qeyri-standart bucaqlar (məsələn, 45 dərəcə) üçün faydalıdır.
3. Şəklin güzgü əksi
Güzgü əksi şəklin horizontal və ya vertikal çevrilməsinə imkan verir. Bu, fotodakı obyektin istiqamətini dəyişmək və ya simmetrik effekt yaratmaq zamanı çox faydalıdır.
transpose()
metodu
transpose()
metodu güzgü əksi üçün istifadə olunur və aşağıdakı parametrləri dəstəkləyir:
Image.FLIP_LEFT_RIGHT
: Horizontal çevirmə.Image.FLIP_TOP_BOTTOM
: Vertikal çevirmə.
# Şəklin horizontal güzgü əksi
flipped_horizontal = image.transpose(Image.FLIP_LEFT_RIGHT)
flipped_horizontal.save("flipped_horizontal_example.jpg")
# Şəklin vertikal güzgü əksi
flipped_vertical = image.transpose(Image.FLIP_TOP_BOTTOM)
flipped_vertical.save("flipped_vertical_example.jpg")
Bu komandalar şəkli horizontal və vertikal çevirir ki, bu da müxtəlif effektlər üçün və ya şəkillərin düzgün istiqamətə salınması üçün istifadə edilə bilər.
Kəsmə, çevirmə və güzgü əksinin praktiki tətbiq nümunələri
- Şəkilin müəyyən sahəsinə diqqət yönəltmək: Kəsmə, şəkilin lazım olan hissəsini seçməyə imkan verir. Bu, portretlər yaratmaq, lazımsız detalları kəsmək və şəkilləri sosial şəbəkələr və ya veb-saytlar üçün hazırlamaq zamanı faydalıdır.
- Şəklin düzgün istiqamətə salınması: Çevirmə, xüsusilə cihazın şəkli yanlış istiqamətdə çəkdiyi halda, şəkilin yönünü düzəltmək üçün istifadə olunur. Məsələn, albom istiqamətində çəkilmiş şəkilin portret istiqamətinə uyğunlaşdırılması.
- Simmetrik effektlərin yaradılması: Güzgü əksi dizaynda simmetrik şəkillər yaratmaq, maraqlı vizual effektlər əldə etmək və kompozisiyanı yaxşılaşdırmaq üçün tez-tez istifadə olunur.
4. Tipik səhvlər və onların qarşısını alma yolları
Pillow ilə işləyərkən bəzən səhvlərlə qarşılaşa bilərsiniz, bu səhvlər ən çox yeni başlayanların qarşısına çıxır. Belə səhvlərdən biri — şəkli real ölçülərindən kənarda kəsməyə cəhd etməkdir. Həmişə şəkilin ölçülərini yoxlayın və kəsmə koordinatlarını bu ölçülərə uyğun təyin edin.
Digər bir nüans — döndərildikdə şəkil kəsilmiş kimi görünə bilər, əgər `rotate` metodundan əlavə parametrlərsiz istifadə etsəniz. Bu, döndərilmə zamanı şəkilin ölçülərinin dəyişməsi ilə əlaqədardır. Bunun qarşısını almaq üçün expand=True
parametrindən istifadə edin, bu avtomatik olaraq ölçüləri tənzimləyir:
# Şəkili 45 dərəcə döndəririk və künclərin kəsilməməsi üçün genişləndirmə tətbiq edirik
rotated_image = image.rotate(45, expand=True)
rotated_image.save("rotated_expanded.jpg")
GO TO FULL VERSION