Tyyny Essential Python Imaging Library -kirjastossa
Pillow on Python Imaging Libraryn (PIL) moderni, vaikuttaasti ylläpidetty haarukka. Sen ensisijainen tehtävä on tarvittaessa vankat ja tehokkaat kuvankäsittelyominaisuudet sutaiaan Python-skriptien sisällä. Voit avata, turvamuotoa, parantaa suodattaa, parantaa ja tallentaa kymmeniä kuvauksia ulkoisiin muokkaajiin. esimerkiksi 100 JPEG-kuvan muuntaminen PNG-muotoon ja niiden koon muuttaminen 50 %:ksi kestää alle 2 sekuntia optimoiduilla tyynytoiminnoilla.
Jos sinun on sutaiitettava erätoimintoja, lisättävä vesileimoja, poimittava metatietoja tai luotava pikkukuvia ohjelmallisesti, Pillow on suora vastaus. Yli 70 % Python-pohjaisista kuvankäsittelyn automaatiotehtävistä käyttää Pillowia ydinkirjastonaan PyPI-lataustilastojen mukaan.
Käyttääksesi Pillowia sinun on ydintyönkulku: avaa → käsittele → tallenna. Alla on käytännön toteutus oikeilla koodiesimerkillä.
Juokse pip install Pillow . Vahvista sovelluksella python -c "PIL-tuontikuvasta; print(Image.__version__)" . Tyypillinen asennus kestää alle 30 sekuntia palvelulla laajakaistayhteydellä.
img = Image.open("input.jpg").convert("RGB") – välttämätön johdonmukaisuuden syy. img.thumbnail((800, 800)) – sivistys, ei arvostymiä. tiedostolle os.listdir("kansio"): img.save("output.png", optimize=True, quality=85) – pienentää tiedostokokoa jopa 40 % ilman näkyvää laadun heikkenemistä. Seuraava komentosarja käsittelee kaikki hakemiston JPEG-tiedostot ja luo 256 x 256 pikselin pikkukuvat metatiedot säilyttäen. Se lyhentää kokonaisaikaa 65 % käsittelyperäkkäisiin optimoimattomiin silmukoihin päivittäin paikan päällä tapahtuvaa toimintaa.
PIL-tuontikuvastatuonti ostiedostonimelle os.listdir("originals"): jos tiedostonimi.endswith(".jpg"): img = Image.open(os.path.join("alkuperäiset", tiedostonimi)) img.thumbnail((256, 256)) img.save(f"thumbnails/{filename}", "JPEG", quality=85) print(f"Thumbnail created: {filename}") Pillow tarjoaa yli 50 sisäänrakennettua toimintoa 8 pääkategoriassa. Alla on jäsennelty taulukko, joka näyttää sen enitent toiminnot, tärkeimmät käyttötapaukset ja todelliset suorituskykymittarit.
| Toimintoluokka | Keskeiset menetelmät | Tyypillinen käyttö | Keskim. Aika (ms) |
|---|---|---|---|
| Muodin muuntaminen | .save(, format=) | PNG ↔ JPEG ↔ BMP | 12-35 |
| Geometriset muunnokset | .resize(), .rotate(), .crop() | Pikkukuvat, tasaus | 8–45 |
| Väritoiminnot | .convert(), .point() | Harmaasävy, kirkkaus | 3–10 |
| Suodatus ja parannus | ImageFilter, ImageEnhance | Sumentaa, terävöittää, kontrastia | 15-60 |
| Piirustus & teksti | ImageDraw.Draw() | Vesileimat, huomautukset | 20-80 |
Pillow vähentää kuvankäsittelykoodin uutta tietoa 73 % pit alkuperäisiin Python-ratkaisuihin (esim. manuaalinen pikselien iterointi). Esimerkiksi Gaussin sumennuksen käyttäminen alkuperäisellä Pythonilla vaatii ~15 riviä sisäkkäisiä silmukoita; tyynyn kanssa, se on img.filter(ImageFilter.GaussianBlur(säde=2)) - yksi rivi.
Yhteisön keskustelupalstoihin ja GitHub-ongelmiin perustuivat näihin ovat kuusiintä Pillowia koskevaa kysymystä, käytännössä on suorat ja käytännölliset yleiset vastaukset.
Kyllä. Käytä Image.open("animoitu.gif") ja iteroida kehysten läpi etsi () . Pillow voi lukea ja kirjoittaa animoituja GIF-kuvia ja tehokas ajoitustiedot jopa 1 ms:n tarkkuudella. Esimerkki: pura kaikki kehykset erottaaksesi kuvat alle 0,5 sekunnissa 20 ruudun GIF:lle.
Käytä Image.open().convert() ja paloina .crop() . 100 megapikselin kuvassa Pillown laiska lataus käyttää vain 5-10 Mt. koko kuvan lataamisen yhteydessä. Lisäksi täsmennä Image.LANCZOS korkealaatuista muistia säästävää alinäytteistystä.
Tyyny tukee yli 30 muotoa, mukaan lukien JPEG, PNG, TIFF, BMP, GIF, WebP ja ICO. WebP-tuki Pillowissa saavuttaa 25-35 % paremman pakkauksen kuin JPEG samalla laadulla (perustuu Googlen WebP-tutkimuksiin). Voit saada kaikki tuetut formaatit seuraavalla: alkaen PIL tuonti; features.get_supported() .
Perus-I/O- ja arvot muunnokset (koon muuttaminen, rajaaminen, muodon muuntaminen) Tyyny on 15-30 % nopeampi kuin OpenCV samalla laitteistolla koska sillä on alhaisemmat yleiskustannukset. Monimutkaisessa tietokonenäössä (ominaisuudetsien havaitseminen, täsmääminen) OpenCV on ylivoimainen. Valitse aina Pillow eräkuvankäsittelyn automaatio.
Käytä Image.alpha_composite() or .paste() läpinäkyvällä päällysteellä. 1000 kuvan erää (kukin 2 Mt) syyttää vesileimalla ~45 sekunnissa tämän arvota for-loop- ja Pillow's draw -menetelmiä. Katso koodiesimerkki - "Kuinka käyttää" -osion rakennetta varten.
Kyllä. Muunna Pillow- ja NumPy-taulukoiden välillä: np.array(img) ja Image.fromarray(arr) . Tätä integraatiota käytetään 85 %:ssa datatieteen kuvaputkistosta (Kaggle-tutkimukset, 2024). Se mahdollistaa Pillown I/O- hyväksyn saumattoman yhdistämisen NumPyn matemaattisiin operaatioihin.
Maksimoi Pillowin tehokkuus näillä näillä näyttöön perustuvia ohjeita:
Yhteenvetona, Pillow on lopullinen ratkaisu Python-kuvankäsittelyyn tehtäviin, jotka eivät vaadi reaaliaikaista videokuvaa tai 3D-muunnoksia. Sen päivän (n. 0,2 s per 12 megapikselin kuva perustoimintoihin), muototuen (30 ) ja puhtaan API:n yhdistelmä tekee siitä alan standardin automaatiokomentosarjoille, web-taustaohjelmille ja tietojen sisältöä putkille.