Pillow/Otázky a odpovědi
Tato stránka je součástí kurzu: | |
specifické předpoklady | |
Příslušnost: Juandev |
Tato stránka není ještě hotová.
Pillow je knihovna přinášejícící možnosti do programovacího jazyka Python.
Jak se kurzu účastnit
editovatTento kurz je postaven na samostudiu, hledání informací na webu, YouTube, diskusí s AI typu chatGPT. Pokud ve Vašem studiu vyvstane nějaká otázka, či potřeba řešení, zapíšete níže do patřičné tabulky a když najdete řešení či opověď tak to opět přehledně zapíšete zde do tabulky. Pokud žádné otázky nemáte, můžete zkusit zodpověďět nezodpovězené otázky v tabulce níže.
Otázky
editovatČ. | Otázka | Odpověď | Poznámky |
---|---|---|---|
1 | Proč se knihovna importuje jako PIL ?
|
Zřejmě proto, že se jedná o nástupce knihovny Python Imagining Library, která se volala jako PIL a po zkončení jejího rozvoje v roce 2011 vznikl Pillow jako její fork. | |
2 | Je Pillow součástí standardní knihovny? | Ne. | |
3 | Co dělá ImageTk.PhotoImage ?
|
Jedná se o widget ImageTk na němž je umístěna metoda PhotoImage, která vytváří objekt obrázku (<class 'PIL.ImageTk.PhotoImage'> ). Tomuto objektu pak rozumí widgety tk a ttk. Využívá se to tedy k posílání obrázků typu jpg do widgetů tk a ttk, protože třída tk.PhotoImage neumí jpg zpracovat na objekt využitelných v těchto widgetech....
jiny_obrazek_tk = ImageTk.PhotoImage(file = "/home/~/100CANON/kabrinec4d.jpg")
tlacitko = ttk.Button(okno, text = "tlačítko", image = jiny_obrazek_tk)
tlacitko.pack()
...
|
|
4 | Co dělá Image.open ?
|
Otevírá obrázek z URL, bajtového řetězce či z lokálního umístění. Umožňuje ho tedy zpracovat před vytvořením objektu obrázku, který by se mohl využít ve widgetech. | |
5 | Kde najdu kompletní dokumentaci knihovny? | Třeba zde. | |
6 | Jaké jsou atributy třídy Image ?
|
|
|
7 | Jakým způsobem dekódovat slovník exifu? | ||
8 | Jak vytvořím thumbnail? | ||
9 | K čemu se používá Image.info ?
|
Zřejmě se jedná o metodu, která je využívána jinou metodou, například Image.open() . Proto nejde asi přímo použít, protože výstup je v bytes a je zakódován a není známé jakým kódováním.
|
|
10 | Co dělá Image.load() a jak se liší od Image.open() ?
|
Automaticky se spouští s metodou Image.open() .
| |
11 | Co znamenají jednotlivá čísla, ze slovníku, který je generován po zadání print(obrázek.getexif) , {296: 2, 282: 72.0, 34853: 17287, 34665: 360, 271: 'Canon', 272: 'Canon EOS 90D', 315: '', 274: 1, 306: '2023:11:18 14:12:00', 531: 2, 33432: '', 283: 72.0} ?
|
Jedná se o decimální klíče tagů, tedy metainformací o daném obrázku. Dle exif standardu 2.3, ze kterého byl vygenerován tento zkrácený exif představují jednotlivé číselné kódy následující:
Podle výše uvedeného bysme tedy mohli záznam rozklíčovat následovně:
|
Číslo exif standardu je uloženo v samotném exifu a jde zjistit v bashi pomocí exiftool -EXIF:ExifVersion název souboru .
|
12 | Kde jsou uloženy informace o exif verzi? | Přímo v exifu. Klíč Exif.Photo.ExifVersion hex 0x9000 , dec 36864 .
|
|
13 | Pokud exif 531 není v IFD, znamená to, že pozice 2 je tělo jpg?
|
||
14 | Kde najdu nějaká svobodné ikony? | Třeba zde. | |
15 | Těží pillow data z EXIF, nebo TIFF metainformačního segmentu? | ||
16 | Kde najdu seznam všech dostupných Exif Tagů? |
Řešení
editovatČ. | Co | Jak | Poznámky |
---|---|---|---|
1 | Jak do Image.open zadat cestu k souboru?
|
V uvozovkách. | Pokud něco nefunguje, mohou být překlepy v cestě. Na Linuxu fungují i mezery v názvech adresářů, pokud je vše v závorce vedeno jako řetězec. |
2 | Jak zjistím verzi exif standardu? | ||
3 | Jak vygeneruje GPS obrázku? |
Související otázky
editovatČ. | Otázka | Odpověď | Poznámky |
---|---|---|---|
1 | Jaké jsou další části IFD? | Například:
|
Z tohoto rozdělení je vidět že Image File Directory (IFD) je spíš součástí TIFF metainformace, nežli EXIFu jako takového, protože samotný EXIF je pouze privátním tagem v rámci EXIFu. IFD může být kdekoliv v kódu obrázku ale je to tak, že na nové IFD je odkázáno vždy z konce předchodzího IFD. Hodnotou odkazuje je decimální tag. |
2 | Co je to IFD 0 ?
|
IFD 0, neboli nultý image file directory je dle specifikace TIFF povinný segment metainformace se kterým by měl umět každý software pracovat. | |
3 | Co je to primární obrázek? | Tj. hlavní obrázek, protože vše je odvozeno z formátu TIFF, kde mohou být ještě vnořeny obrázky různých náhledů, tedy v různém rozlišení. | |
4 | Co je to application marker segment (APP)? | Jedná se o oblast, ve které lze u *.tiff or *.jpg souboru očekávat určitý typ metainformací. Jelikož se metainformace u těchto souborů objevují pokažde jinde, jsou marker segmenty jen obecným označením určujícím jaké typy metainformací se v ních budou vyskytovat. | |
5 | Takže audio soubory nemají TIFF information, ale pouze EXIF chunks? | ||
6 | Co to je Flashpix? | Formát obrazové bitmapy, který má v sobě obrázek uložen v několika rozlišeních. Při zobrazování na webu se nahraje pouze patřičné rozlišení tak, že nedochází k přetěžování přenosů. | |
7 | Co je to bitmapa? | Značí obrazový soubor složený z řad různě zbarvených pixelů. | Jpeg je také bitmapa, ale obvykle se tak neoznačuje, protože obsahuje komprimaci. |
8 | Kde najdu TIFF Specification Supplement 2 ke stažení? | Stejně jako supplement 1 ve webarchivu. | |
9 | Co je to PostScript? | Programovací jazyk určený k popisu technických dokumentů. Patří Adobe. | |
10 | *.jpg soubory nemají obrázkové adresáře (image file directory), ale marker segments? |