Vankúš je základná knižnica obrázkov Python
Vankúš je moderná, aktívne udržiavaná vidlica Python Imaging Library (PIL). Jeho primárna funkcia je robustné a efektívne možnosti spracovania obrazu priamo v skriptoch Pythonu. Môžete otvárať, manipulovať, filtrovať, vylepšovať a ukladať desiatky falebomátov obrázkov bez toho, aby ste sa spoliehali na externú redakciu. napr. konverzia 100 obrázkov JPEG na PNG a ich zmena veľkosti na 50 % trvá menej ako 2 sekundy s optimalizovanými vankúšovými operáciami.
Ak potrebujete vykonávať dávkové operácie, pridávať vodoznaky, extrahovať metadáta alebo vytvárať miniatúrne programy, Pillow je priama odpoveď. Viac ako 70 % úloh automatizácie spracovania obrázkov založených na Pythone používa Pillow ako svoju základnú knižnicu , podľa štatistík sťahovania PyPI.
Ak chcete využiť vankúš, musíte pochopiť jeho hlavný pracovný postup: → spracovať → použiť. Nižšie je praktická implementácia s reálnymi príkladmi kódu.
Bežať pip install Vankúš . Overiť pomocou python -c "z PIL impalebotovať obrázok; print(Image.__version__)" . Typická inštalácia trvá menej ako 30 sekúnd na štaardnom širokopásmovom pripojení.
img = Image.open("vstup.jpg").convert("RGB") – konverziu pre rovnakú úroveň. img.thumbnail((800, 800)) – zachovávam pomer, žiadne skreslenie. pre súbor v os.listdir("priečinok"): img.save("output.png", optimalizovať=Pravda, kvalita=85) – znížila veľkosť súboru až o 40% bez viditeľnej straty kvality. Nasledujúci skript spracuje všetky súbory JPEG v adresári, pričom vytvorí miniatúry s veľkosťou 256 x 256 pixelov pri zachovaní metadátu. V porovnaní so sekvenčnými neoptimalizovanými slučkami zloženými z celkového času spracovania o 65 %. pomocou operácií na mieste.
z PIL importu Obrázokimport ospre názov súboru v os.listdir("originals"): if filename.endswith(".jpg"): img = Image.open(os.path.join("originály", názov súboru)) img.thumbnail((256, 256)) img.save(f"thumbnails/{filename}", "JPEG", quality=85) print(f"Thumbnail created: {filename}") Vankúš poskytuje viac ako 50 vstavaných funkcií v 8 hlavných funkciách. Nižšie uvedená štruktúrovaná tabuľka zobrazuje jeho primárne funkcie, typické prípady použitia a metriky výkonu v reálnom svete.
| Kategória funkcie | Kľúčové metódy | Typické použitie | Priem. čas (ms) |
|---|---|---|---|
| Konverzia formátu | .save(, format=) | PNG ↔ JPEG ↔ BMP | 12-35 |
| Geometrické transformácie | .resize(), .rotate(), .crop() | Miniatúry, zarovnanie | 8–45 |
| Farebné operácie | .convert(), .point() | Odtiene šedej, jas | 3–10 |
| Filtrovanie a vylepšenie | ImageFilter, ImageEnhance | Rozmazať, zaostriť, kontrastovať | 15-60 |
| Kreslenie a text | ImageDraw.Draw() | Vodoznaky, anotácie | 20-80 |
Vankúš znížiť váhu na spracovanie obrazu v priemere o 73 % v porovnaní s natívnymi riešeniami Pythonu (napr. manuálna iterácia pixelov). Napríklad aplikácia Gaussovho rozostrenia s natívnym Pythonom vyžaduje ~15 riadkov vnorených slučiek; s vankúšom, to je img.filter(ImageFilter.GaussianBlur(polomer=2)) - jeden riadok.
Na základe komunitných problémov a problémov GitHub je toto 6 najčastejšie kladených otázok o Pillow s priamymi odpoveďami.
áno. Použite Image.open("animated.gif") a iterujte cez rámce s hľadať () . Vankúš dokáže čítať a zapisovať animované súbory GIF, pričom zachováva časové údaje s presnosťou až 1 ms. Príklad: extrahujte všetky snímky na samostatné obrázky za menej ako 0,5 sekundy pre 20-snímkový GIF.
Použite Image.open().convert() a spracovať po kúskoch s .crop() . Pre obrázok s rozlíšením 100 MP využíva lenivé načítanie Vankúš spočiatku iba 5 – 10 MB namiesto načítania celého obrázka. Okrem toho špecifikujte Obrázok.LANCZOS pre vysokokvalitné prevzorkovanie, ktoré je pamäťovo efektívne.
Vankúš natívne podporuje viac ako 30 formátov vrátane JPEG, PNG, TIFF, BMP, GIF, WebP a ICO. Podpora WebP v Pillow dosahuje o 25-35% lepšiu kompresiu ako JPEG pri rovnakej kvalite (na základe štúdií WebP spoločnosti Google). Ak chcete podporovať všetky podporované formáty: z funkcií importu PIL; features.get_supported() .
Pre základné I/O a jednoduché transformácie (zmena veľkosti, orezanie, konverzia formátu), Vankúš je o 15-30% OpenCV na rovnako rýchlejšom hardvéri pretože má skôr réžiu. Pre komplexné počítačové videnie (detekcia funkcií, párovanie) je OpenCV lepšie. Pre automatizáciu dávkového spracovania obrazu vždy zvoľte Vankúš.
Použite Image.alpha_composite() or .paste() s priehľadným prekrytím. Dávku 1 000 obrázkov (každý 2 MB) je možné označiť vodotlačou za ~45 sekúnd pomocou jednoduchých metód for-loop a Pillow's draw. Štruktúru nájdete v príklade kódu v časti „Ako používať“.
áno. Prevod medzi poliami Pillow a NumPy: np.array(img) a Image.fromarray(arr) . Táto integrácia sa používa v 85 % dátových vedeckých obrazových kanálov (Prieskumy Kaggle, 2024). Umožňuje bezproblémovú rýchlosť I/O Pillow s matematickými operáciami NumPy.
Ak chcete maximalizovať efektivitu Pillow, postupujte podľa týchto pokynov založených na dôkazoch:
v súhrne Vankúš je definitívnym riešením pre spracovanie obrazu v Pythone pre úlohy, ktoré nevyžadujú video v reálnom čase alebo 3D transformácie. Jeho kombinácia rýchlosti (~0,2 s na 12MP obrázku pre základné operácie), podpory formátov (30 typov) a čistého API z neho robí priemyselný štandard pre automatizačné skripty, backendy a kanály na prípravu webových údajov.