1. Sissejuhatus
Pythoni ja Pillow ülevaade
Python on programmeerimiskeel, mida armastavad paljud arendajad ja andmeteadlased oma lihtsa süntaksi ja rikkaliku teekide valiku tõttu. Seda kasutatakse mitmesugustes valdkondades. Piltide töötlemiseks kasutatakse laialdaselt Pillow (varem PIL: Python Imaging Library), mis on üks enim kasutatud Pythoni pilditöötluse teeke.
Pillow toetab mitmeid pildiformaate nagu JPEG, PNG, GIF jne ning võimaldab lihtsat piltide suuruse muutmist, kärpimist, filtreerimist ja teksti lisamist. Seda kasutatakse sageli erinevates rakendustes, kus on vaja pilte laadida, salvestada või redigeerida.
Artikli eesmärk
Selles artiklis selgitame põhjalikult, kuidas kasutada Pythoni Pillow teeki nii põhiliseks kui ka edasijõudnutele mõeldud pilditöötluseks. Tutvustame pildiva laadimist ja salvestamist, suuruse muutmist, pööramist, filtrite rakendamist ning teksti ja kujundite lisamist.
Selle juhendi abil õpid Pillow võimalusi praktiliselt ära kasutama ja omandad oskused, mida saad kohe oma projektides rakendada.
2. Pillow paigaldamine
2.1 Kuidas paigaldada Pillow oma Pythoni keskkonda
Et kasutada Pillow’d, tuleb see kõigepealt oma Pythoni keskkonda paigaldada. Paigaldus on väga lihtne – piisab, kui sisestad terminalis (Windowsis käsureal) järgmise käsu:
pip install Pillow
pip
on Pythoni pakettide haldamise tööriist. See käsk paigaldab Pillow teegi automaatselt. Kui paigaldamine õnnestub, saad kohe piltidega tööd alustada.
2.2 Kuidas kontrollida, kas paigaldus õnnestus
Kui Pillow on paigaldatud, tasub teha lihtne testkood, et veenduda, et kõik töötab. Kirjuta allolev kood Pythonis ja käivita see:
from PIL import Image
# Pillow töö kontrollimiseks
img = Image.new('RGB', (100, 100), color = 'red')
img.save('test_image.png')
See kood loob 100×100 pikslise punase pildi ja salvestab selle nimega “test_image.png”. Kui fail luuakse korrektselt, on Pillow edukalt paigaldatud ja töötab.
2.3 Levinumad paigaldusprobleemid ja lahendused
Mõnikord võib Pillow paigaldamisel tekkida probleeme. Siin on levinumad vead ja nende lahendused:
- Pythoni versioon on liiga vana
Pillow toetab Pythoni versiooni 3.x ja uuemaid. Kui kasutad vanemat Pythonit, võib paigaldus ebaõnnestuda. Kontrolli versiooni käsugapython --version
ja vajadusel uuenda Python. - Sõltuvuste probleemid
Kui Pillow paigaldamisel jääb mõni vajalik pakett puudu, järgi veateates toodud soovitusi ning paigalda puuduvad paketid käsitsi või kasuta allolevat käsku, et paigaldada kõik sõltuvused uuesti.
pip install Pillow --upgrade
- Keskkonnamuutujad
Eriti Windowsis võib Pillow mitte töötada, kui Pythoni või Pipi rada pole õigesti keskkonnamuutujates määratud. Veendu, et kõik teed oleksid õigesti seadistatud.

3. Piltide laadimine ja kuvamine
3.1 Kuidas avada pildifaile Pythonis
Piltide laadimine on pilditöötluse põhisamm. Alustame faili avamise viisist. Pillow’s saab pilte avada meetodiga Image.open()
.
Näide pildi laadimisest:
from PIL import Image
# Pildi avamine
img = Image.open('sample.jpg')
# Pildi info kuvamine
print(img.format) # Failiformaat (nt: JPEG, PNG)
print(img.size) # Suurus (laius, kõrgus)
print(img.mode) # Värvirežiim (nt: RGB, L)
See kood avab faili Image.open()
abil ning kuvab selle formaadi, mõõdud ja värvirežiimi. Faili tee tuleb lihtsalt ära märkida ning pildi laadimine on väga lihtne.
3.2 Pildi kuvamine
Kui oled pildi avanud, saad selle kuvada meetodiga show()
. See avab pildi sinu arvuti vaikimisi pildivaaturis.
Siin on näide:
from PIL import Image
# Pildi avamine
img = Image.open('sample.jpg')
# Pildi kuvamine
img.show()
See avab valitud pildifaili vaikevaaturis, võimaldades sisu kiiresti üle vaadata.
3.3 Pildi detailse info saamine
Pillow võimaldab lihtsalt saada pildi erinevaid omadusi, nt laiust, kõrgust (size
), värvirežiimi (mode
) jne.
Näide:
from PIL import Image
# Pildi avamine
img = Image.open('sample.jpg')
# Pildi detailinfo
print(f'Pildi suurus: {img.size}') # (laius, kõrgus)
print(f'Failiformaat: {img.format}') # nt JPEG, PNG
print(f'Värvirežiim: {img.mode}') # nt RGB, L
Nii saad teada pildi põhiteabe ja kasutada seda näiteks suuruse muutmisel või kärpimisel.
3.4 Pillow toetatud pildiformaadid
Pillow toetab mitmeid pildiformaate:
- JPEG
- PNG
- GIF
- BMP
- TIFF
Seega saad hõlpsasti töödelda peamisi pildiformaate. See võimaldab paindlikkust näiteks veebirakendustes, kus kasutajad laadivad üles erinevaid faile.
4. Põhilised pilditöötlustoimingud
4.1 Pildi suuruse muutmine (resize)
Üks peamisi toiminguid on pildi suuruse muutmine. Seda kasutatakse näiteks, et pildid sobituksid veebilehele. Pillow’s saab resize()
abil suurust muuta.
Näide:
from PIL import Image
# Pildi avamine
img = Image.open('sample.jpg')
# Muuda suurus (laius 400px, kõrgus 300px)
resized_img = img.resize((400, 300))
# Salvesta uus pilt
resized_img.save('resized_sample.jpg')
See kood muudab pildi suuruseks 400×300 pikslit ning salvestab uue faili.
4.2 Pildi kärpimine (crop)
Kärpimine tähendab, et võtad pildist ainult soovitud osa. Seda tehakse crop()
abil.
Näide:
from PIL import Image
# Pildi avamine
img = Image.open('sample.jpg')
# Kärbi pilt (vasak-ülemine 100,100 kuni parem-alumine 300,300)
cropped_img = img.crop((100, 100, 300, 300))
# Salvesta kärbitud pilt
cropped_img.save('cropped_sample.jpg')
See lõikab välja määratud ala ja salvestab selle uue failina.
4.3 Pildi pööramine
Pildi pööramine toimub rotate()
meetodiga. Kui soovid, et kogu pilt oleks nähtav ka pärast pööramist, lisa expand=True
.
Näide:
from PIL import Image
# Pildi avamine
img = Image.open('sample.jpg')
# Pööra 45 kraadi (expand=True tagab, et kõik jääb nähtavaks)
rotated_img = img.rotate(45, expand=True)
# Salvesta pööratud pilt
rotated_img.save('rotated_sample.jpg')
Pilt pööratakse ja salvestatakse.
4.4 Pildi peegeldamine (flip)
Pillow võimaldab pilti ka peegeldada, näiteks vasakult paremale (FLIP_LEFT_RIGHT
) või ülevalt alla.
Näide:
from PIL import Image
# Pildi avamine
img = Image.open('sample.jpg')
# Vasakult paremale peegeldus
flipped_img = img.transpose(Image.FLIP_LEFT_RIGHT)
# Salvesta peegelpilt
flipped_img.save('flipped_sample.jpg')
See salvestab pildi peegeldatult.
4.5 Muud põhilised töötlused Pillow’s
Lisaks saab Pillow’ga lihtsalt muuta pildi heledust, kontrasti ja värviruumi, automatiseerides isegi keerulisemaid töötlusi programmiga.

5. Pildiformaadi muutmine ja salvestamine
5.1 Pildiformaadi konverteerimine
Pillow abil saab pilte lihtsalt ühest formaadist teise konverteerida. Näiteks JPEG-pildi saab salvestada PNG-formaadis. Selleks lae pilt lihtsalt sisse ja kasuta save()
meetodit soovitud formaadiga.
Näide JPEG-pildi konverteerimisest PNG-ks:
from PIL import Image
# Lae JPEG-pilt
img = Image.open('sample.jpg')
# Salvesta PNG-formaadis
img.save('converted_image.png', 'PNG')
See kood loeb sisse JPEG-faili sample.jpg
ja salvestab selle PNG-failina converted_image.png
. Nii saab erinevaid pildiformaate väga lihtsalt omavahel teisendada.
5.2 Kuidas pilte salvestada
Kui oled Pillow’ga pilti töödelnud, saad salvestamisel valida erinevaid seadeid. Näiteks JPEG-failide puhul saab määrata kvaliteeti, optimeerimist ja progressiivset laadimist.
Näide, kuidas salvestada JPEG-d kvaliteedi ja optimeerimisega:
from PIL import Image
# Pildi avamine
img = Image.open('sample.jpg')
# Salvesta JPEG-na (kvaliteet 95, optimeeritud)
img.save('optimized_image.jpg', 'JPEG', quality=95, optimize=True)
Siin määrab quality=95
pildi kvaliteedi (vahemikus 0–100, suurem on parem, aga fail on suurem). optimize=True
võimaldab vähendada faili mahtu.
5.3 Progressiivse JPEG pildi salvestamine
Progressiivne JPEG tähendab, et pilti laaditakse veebis järk-järgult – esmalt udusem, siis selgem. See parandab kasutajakogemust aeglasema internetiga.
Salvesta progressiivne JPEG nii:
from PIL import Image
# Pildi avamine
img = Image.open('sample.jpg')
# Salvesta progressiivse JPEG-na
img.save('progressive_image.jpg', 'JPEG', quality=85, progressive=True)
progressive=True
annab tulemuseks progressiivse JPEG-pildi, mis laadib kihthaaval.
5.4 EXIF-andmete säilitamine
EXIF (Exchangeable Image File Format) on metaandmed, mida salvestavad digikaamerad (nt võtte aeg, kaamera seaded, GPS). Pillow võimaldab EXIF-andmed alles jätta.
Näide EXIF-iga salvestamisest:
from PIL import Image
# Pildi avamine
img = Image.open('sample.jpg')
# Hangi EXIF-andmed
exif_data = img.info.get('exif')
# Salvesta JPEG EXIF-iga
img.save('exif_image.jpg', 'JPEG', exif=exif_data)
See kood säilitab kõik algse pildi EXIF-andmed uues failis.
6. Filtrite ja efektide kasutamine
6.1 Pildi heledus ja kontrast
Pillow võimaldab reguleerida pildi heledust ja kontrasti ImageEnhance
mooduli abil. Näiteks saab ImageEnhance.Brightness()
ja ImageEnhance.Contrast()
abil muuta pilti erksamaks või tuhmimaks.
Heleduse muutmise näide:
from PIL import Image, ImageEnhance
# Pildi avamine
img = Image.open('sample.jpg')
# Tee pilt 1.5x heledamaks
enhancer = ImageEnhance.Brightness(img)
bright_img = enhancer.enhance(1.5)
# Salvesta tulemus
bright_img.save('bright_sample.jpg')
enhance(1.5)
teeb pildi 1,5 korda heledamaks (väärtus 1.0 on originaal, väiksem on tumedam).
Kontrasti suurendamine toimub samal põhimõttel:
from PIL import Image, ImageEnhance
# Pildi avamine
img = Image.open('sample.jpg')
# Tõsta kontrasti 2x
enhancer = ImageEnhance.Contrast(img)
contrast_img = enhancer.enhance(2.0)
# Salvesta tulemus
contrast_img.save('contrast_sample.jpg')
Kontrasti tõstmine muudab heledad ja tumedad alad eristuvamaks.
6.2 Hägusus, teravus ja muud filtrid
Pillow’ga saab pilte ka hägustada või teravustada ImageFilter
mooduli abil.
Näide hägususe lisamisest:
from PIL import Image, ImageFilter
# Pildi avamine
img = Image.open('sample.jpg')
# Lisa hägusus (BLUR)
blurred_img = img.filter(ImageFilter.BLUR)
# Salvesta
blurred_img.save('blurred_sample.jpg')
Kui soovid pilti teravustada, kasuta ImageFilter.SHARPEN
:
# Lisa teravus
sharpened_img = img.filter(ImageFilter.SHARPEN)
# Salvesta
sharpened_img.save('sharpened_sample.jpg')
Selle abil saab pilti kas pehmemaks või selgemaks muuta.
6.3 Spetsiaalsed filtrid
Pillow sisaldab ka eri filtreid nagu ääre tuvastus või kontuuride rõhutamine, mis on kasulikud pildi analüüsiks või disainiks.
Näide ääre tuvastusest:
from PIL import Image, ImageFilter
# Pildi avamine
img = Image.open('sample.jpg')
# Lisa ääretuvastusfilter
edge_img = img.filter(ImageFilter.FIND_EDGES)
# Salvesta
edge_img.save('edge_sample.jpg')
See tõstab esile pildi piirjooned ja muudab kontuurid nähtavaks.

7. Teksti ja kujundite lisamine
7.1 Kuidas lisada tekst pilti Pillow abil
Teksti lisamine pildile on oluline näiteks reklaamides, bännerites, logo kujunduses. Pillow’s saab seda teha ImageDraw
mooduliga.
Lihtne näide teksti lisamisest:
from PIL import Image, ImageDraw, ImageFont
# Pildi avamine
img = Image.open('sample.jpg')
# Tee ImageDraw objekt
draw = ImageDraw.Draw(img)
# Lisa tekst
draw.text((10, 10), 'Hello, Pillow!', fill=(255, 255, 255))
# Salvesta
img.save('text_sample.jpg')
Siin ImageDraw.Draw()
võimaldab teksti lisada, fill
määrab teksti värvi (nt valge).
7.2 Fondi valik ja määramine
Vaikimisi kasutatakse süsteemi standardfonti, kuid ImageFont
abil saab määrata konkreetse fondi ja suuruse.
Näide kohandatud fondiga tekstist:
from PIL import Image, ImageDraw, ImageFont
# Pildi avamine
img = Image.open('sample.jpg')
# Tee ImageDraw objekt
draw = ImageDraw.Draw(img)
# Määra fondi fail ja suurus (TrueType)
font = ImageFont.truetype('arial.ttf', 40)
# Lisa tekst fondiga
draw.text((10, 10), 'Custom Font!', font=font, fill=(255, 255, 255))
# Salvesta
img.save('font_sample.jpg')
Fondi fail peab olema süsteemis olemas või lisatud.
7.3 Kujundite lisamine pildile
Lisaks tekstile saab Pillow abil lisada ka jooni, ristkülikuid, ringe jne, kasutades ImageDraw
meetodeid line()
, rectangle()
ja ellipse()
.
Näide kujundite lisamisest:
from PIL import Image, ImageDraw
# Pildi avamine
img = Image.open('sample.jpg')
# Tee ImageDraw objekt
draw = ImageDraw.Draw(img)
# Joon
draw.line((0, 0, 100, 100), fill=(255, 0, 0), width=5)
# Ristkülik
draw.rectangle((50, 50, 150, 150), outline=(0, 255, 0), width=3)
# Ringi (ovaali) piirjoon
draw.ellipse((200, 200, 300, 300), outline=(0, 0, 255), width=3)
# Salvesta
img.save('shape_sample.jpg')
Nii saad teha erinevaid illustratsioone või märkusi pildi peale.
7.4 Keerulisemad kujundused
Pillow võimaldab mitut kujundit ja teksti kombineerida, et luua keerukamaid kujundusi – näiteks bännereid, logodeid, eelvaatepilte, kus on korraga nii tekst kui graafika.
8. Täpsemad tehnikad: piltide ühendamine ja maskimine
8.1 Piltide ühendamine
Mitme pildi ühendamine tähendab, et kombineerid erinevad pildid üheks tervikuks (nt aseta logo taustale). Pillow’s saad kasutada paste()
meetodit.
Näide:
from PIL import Image
# Ava taust ja pealepandav pilt
background = Image.open('background.jpg')
overlay = Image.open('overlay.png')
# Kleebi overlay taustale (x=100, y=100)
background.paste(overlay, (100, 100), overlay)
# Salvesta
background.save('combined_image.jpg')
Kui overlay
pildil on läbipaistvus, säilib see liitmisel.
8.2 Maskiga lõikamine (crop maskiga)
Maskiga saad pildi lõigata näiteks ringikujuliselt. Must ja valge ala määravad, mis osa jääb nähtavaks.
Näide ringikujulisest lõikamisest:
from PIL import Image, ImageDraw
# Ava pilt
img = Image.open('sample.jpg')
# Tee mask (ring)
mask = Image.new('L', img.size, 0)
draw = ImageDraw.Draw(mask)
draw.ellipse((100, 100, 300, 300), fill=255)
# Kleebi maskiga
result = Image.new('RGB', img.size)
result.paste(img, (0, 0), mask)
# Salvesta
result.save('masked_image.jpg')
Valge osa maskis jääb nähtavaks, must osa muutub läbipaistvaks.
8.3 Läbipaistvuse (alfa-kanali) lisamine
Alfa-kanal võimaldab muuta osa pildist poolläbipaistvaks. putalpha()
abil saab määrata läbipaistvuse astme.
Näide:
from PIL import Image
# Ava pilt ja konverteeri RGBA-ks
img = Image.open('sample.jpg').convert('RGBA')
# Alfa-kanali reguleerimine (50% läbipaistev)
alpha = img.split()[3]
alpha = alpha.point(lambda p: p * 0.5)
img.putalpha(alpha)
# Salvesta läbipaistev PNG
img.save('transparent_image.png')
See võimaldab teha näiteks poolläbipaistvaid logosid.
8.4 Täpsemate tehnikate kasutusvõimalused
Kõiki neid tehnikaid kasutades saad automatiseerida keerulisi pilditöötlusi või luua visuaalseid materjale kiiremini – näiteks veebidisainis, bännerite või reklaamide tegemisel, logode ja maskide kasutamisel. Pillow annab sulle kõik tööriistad professionaalseks pilditöötluseks!

9. Kokkuvõte
Selles artiklis käsitlesime üksikasjalikult Pythoni pilditöötluse teeki Pillow. Selle abil saab teha lihtsaid ja keerulisemaid toiminguid – piltide avamine, salvestamine, suuruse muutmine, kärpimine, ühendamine, filtrid, teksti ja kujundite lisamine.
9.1 Pillow põhitoimingute kokkuvõte
Alustasime Pillow paigaldamisest ja piltide avamisest ning info vaatamisest. Nii said selgeks pilditöötluse põhitõed.
9.2 Pildi suuruse muutmine, kärpimine, pööramine
Suuruse muutmine, kärpimine ja pööramine võimaldavad sul kohandada pilte mistahes otstarbeks – näiteks veebilehele või rakendusse sobivaks.
9.3 Filtrite ja efektide kasutamine
Pillow’ga saad pilte lihtsalt heledamaks-tumedamaks teha, lisada kontrasti, teravust, hägusust või ääriseid – see muudab pildid professionaalsemaks.
9.4 Teksti ja kujundite lisamine, piltide ühendamine
Teksti, kujundite ja mitme pildi kombineerimine võimaldab luua keerukamaid disaine, bännereid ja läbipaistvaid logosid – eriti kasulik veebis.
9.5 Edasine kasutamine ja õppimine
Pillow’l on palju võimalusi, mida saad veelgi paremini tundma õppida ametlikest dokumentidest ja muudest allikatest. Automaatne pilditöötlus, andmeteadus, masinõpe – Pillow sobib igale tasemele!
Selle teadmisega saad nüüd oma projektides Pillow täiel määral ära kasutada ja teha pilditöötlust efektiivselt ning professionaalselt.