Pillow je moćna Python biblioteka za rad sa slikama

Pillow je moćna Python biblioteka za rad sa slikama. Omogućava otvaranje, obradu, modifikaciju i konverziju različitih formata slika, kao i crtanje po slikama.

Instalacija Pillow biblioteke je jednostavna i zavisi od toga da li koristiš pip ili sistemske pakete. Pošto koristiš Linux (Ubuntu), evo nekoliko načina da ga instaliraš:


1. Instalacija pomoću pip (preporučeno)

Najlakši i najčešći način je preko pip:

pip install Pillow

Ako želiš da ažuriraš na najnoviju verziju:

pip install --upgrade Pillow

2. Instalacija preko apt (Ubuntu/Debian)

Ako koristiš sistemske pakete, možeš ga instalirati ovako:

sudo apt update
sudo apt install python3-pil

Ovo će instalirati Pillow, ali obično u starijoj verziji.


3. Provera instalacije

Možeš proveriti da li je Pillow uspešno instaliran pokretanjem:

python3 -c "from PIL import Image; print(Image.__version__)"

Ako prikaže verziju (10.x.x ili slično), instalacija je uspešna. 🚀

Ako imaš problema sa zavisnostima, možeš ih instalirati pomoću:

sudo apt install libjpeg-dev zlib1g-dev

(pa ponovo instalirati Pillow preko pip).


Mogućnosti Pillow biblioteke

  1. Otvaranje i prikazivanje slika
  2. Konverzija formata slika
  3. Promena veličine i obrezivanje
  4. Rotacija i ogledanje
  5. Promena osvetljenja, kontrasta i filtriranje
  6. Dodavanje teksta i crtanje po slikama
  7. Ekstrakcija metapodataka
  8. Rad sa animiranim GIF-ovima
  9. Rad sa maskama i transparentnošću
  10. Sažimanje i optimizacija slika

Osnovne operacije i primeri

1. Otvaranje i prikazivanje slike

from PIL import Image

img = Image.open("slika.jpg")
img.show()

(Prikazuje sliku pomoću podrazumevanog pregledača slika.)


2. Konverzija formata slike

img = Image.open("slika.jpg")
img.save("slika.png")  # Konvertuje JPEG u PNG

3. Promena veličine slike

img = Image.open("slika.jpg")
img_resized = img.resize((200, 300))  # Novi dimenzije (širina, visina)
img_resized.save("slika_resized.jpg")

4. Obrezivanje slike (Crop)

img = Image.open("slika.jpg")
cropped = img.crop((50, 50, 200, 200))  # (levo, gore, desno, dole)
cropped.save("slika_cropped.jpg")

5. Rotacija i ogledanje

img = Image.open("slika.jpg")
img_rotated = img.rotate(45)  # Rotacija za 45 stepeni
img_flipped = img.transpose(Image.FLIP_LEFT_RIGHT)  # Horizontalno ogledalo
img_rotated.save("slika_rotirana.jpg")
img_flipped.save("slika_ogledalo.jpg")

6. Promena osvetljenja i kontrasta

from PIL import ImageEnhance

img = Image.open("slika.jpg")

# Povećanje osvetljenja (1.0 je original, 2.0 je duplo jače)
enhancer = ImageEnhance.Brightness(img)
bright_img = enhancer.enhance(1.5)
bright_img.save("slika_osvetljena.jpg")

# Pojačavanje kontrasta
enhancer = ImageEnhance.Contrast(img)
contrast_img = enhancer.enhance(2.0)
contrast_img.save("slika_kontrast.jpg")

7. Primena filtera (Blur, Sharpen, Edge Enhancement)

from PIL import ImageFilter

img = Image.open("slika.jpg")

img_blur = img.filter(ImageFilter.BLUR)
img_sharp = img.filter(ImageFilter.SHARPEN)

img_blur.save("slika_zamagljena.jpg")
img_sharp.save("slika_izostrena.jpg")

8. Dodavanje teksta na sliku

from PIL import ImageDraw, ImageFont

img = Image.open("slika.jpg")
draw = ImageDraw.Draw(img)
font = ImageFont.truetype("arial.ttf", 40)  # Potrebno je da postoji font fajl

draw.text((50, 50), "Pozdrav!", fill="white", font=font)
img.save("slika_tekst.jpg")

9. Ekstrakcija metapodataka

from PIL import Image

img = Image.open("slika.jpg")
exif_data = img._getexif()

if exif_data:
    for tag, value in exif_data.items():
        print(f"{tag}: {value}")

(Ovo prikazuje metapodatke, poput modela kamere i GPS lokacije.)


10. Rad sa animiranim GIF-ovima

img = Image.open("animacija.gif")

for i, frame in enumerate(ImageSequence.Iterator(img)):
    frame.save(f"frame_{i}.png")  # Čuva svaki frejm kao PNG

By Abel

Leave a Reply

Your email address will not be published. Required fields are marked *