TIFF nemusí mít nutně jen jeden obrázek: při zpracování snímku po snímku nebudou chybět stránky.
Po otevření TIFF byla zpracována pouze první stránka. Program nehlásil chybu, ale chyběl zbytek obsahu. U formátů s více snímky jsou „úspěšné otevření souboru“ a „kompletní zpracování souboru“ dvě různé věci. Portál by měl určit počet stránek, než se rozhodne pro zpracování stránky po stránce, rozpočtová omezení a seznamy dodávek.
TIFF může obsahovat více stránek obrázků a to, že program otevře soubor, neznamená, že byla zpracována každá stránka. Pokud je přečtena pouze první stránka, program normálně skončí, ale zbytek obsahu je ztracen. Tento článek je určen pro vývojáře a pracovníky s dokumenty, kteří potřebují dávkově zpracovávat skeny, obrázky s více snímky nebo vícestránkové archivy. Vysvětluje, jak nejprve určit počet stránek, zpracovat je snímek po snímku a zaznamenat výsledky každé stránky.
Kód v tomto článku je demonstrován pomocí syntetických vzorků a prošel kontrolou vzorků v izolovaném prostředí, ale to nepředstavuje záruku všech skutečných souborů nebo efektů produktu. Před zpracováním důležitých dokumentů si prosím uschovejte originály a zkontrolujte je podle hranic a přejímacích položek v textu.
Jak může vícesnímkový TIFF nezmeškat stránky? Závěr jednou větou
Nejprve si přečtěte číslo stránky a zpracujte jej snímek po snímku. Výsledky každé stránky musí být zaznamenány a chybějící stránky musí být jasně označeny.
| vaší situaci | Doporučené postupy | důvod |
|---|---|---|
| Každá stránka musí být použita samostatně | Zkopírujte aktuální obrázek během iterace nebo jej okamžitě zpracujte | Objekty rámců mohou souviset se základním stavem dekódování a přímé ukládání referencí se může navzájem snadno ovlivňovat. |
| Soubor má velký počet stránek nebo vysoké rozlišení | Zpracujte stránku po stránce nebo použijte řízené dávky | Uchovávání všech snímků v paměti bude nadále spotřebovávat zdroje |
| Specifikace se mohou lišit stránku od stránky | Velikost dokumentu, vzor a orientace stránku po stránce | Stránky ve stejném dokumentu nemusí mít nutně stejnou velikost a černobílé a barevné stránky mohou být smíchány. |
| Zpracování stránky se nezdařilo | V seznamu uveďte chybějící stránky a důvody | Nelze jen vrátit dokument a označit vše za vyřízené |
Při iteraci přes snímky zkopírujte aktuální obrázek
ImageSequence.Iterator je vhodný pro iteraci přes více snímků, ale objekty snímků mohou souviset se základním stavem dekódování. Pokud má být každá stránka použita samostatně později, měla by být zkopírována během iterace nebo okamžitě zpracována. Neukládejte opakovaně odkazy na stejný proměnlivý objekt a očekávejte, že získáte stránky, které se navzájem neovlivňují.
Vytvořte dva snímky TIFF, abyste ověřili, že žádná stránka nevynechá
from io import BytesIO
from PIL import Image, ImageSequence
first = Image.new("RGB", (12, 8), "white")
second = Image.new("RGB", (12, 8), "black")
stream = BytesIO()
first.save(stream, format="TIFF", save_all=True, append_images=[second])
stream.seek(0)
with Image.open(stream) as document:
assert document.n_frames == 2
pages = [frame.copy() for frame in ImageSequence.Iterator(document)]
assert len(pages) == 2
assert pages[0].getpixel((0, 0)) == (255, 255, 255)
assert pages[1].getpixel((0, 0)) == (0, 0, 0)
pages[0].putpixel((0, 0), (255, 0, 0))
assert pages[1].getpixel((0, 0)) == (0, 0, 0)
Zde jsou všechny dvě stránky uloženy v paměti, což je vhodné pouze pro tento velmi malý příklad syntézy. Skutečné skenované soubory by měly být zpracovány stránku po stránce nebo použít řízené dávky a výsledky každé stránky by měly být zaznamenány. Všechny snímky s vysokým rozlišením nelze kopírovat a hromadit donekonečna.
Kromě čísla stránky existují rozdíly mezi stránkami
Ve stejném vícesnímkovém souboru jsou rozdíly mezi stránkami často větší, než byste si představovali. Při kontrole stránku po stránce se doporučuje zaznamenat následující položky:
| projekt | Proč kontrolovat stránku po stránce | Co lze zaznamenat |
|---|---|---|
| velikost | Stránky stejného souboru nemusí mít nutně stejnou velikost | Šířka, výška a počet pixelů |
| model | Černobílé a barevné stránky lze kombinovat | Původní režim a strategie konverze |
| směr | Na různých stránkách se může lišit | Změna orientace na stránku |
| poruchový stav | Poškození stránky by nemělo být ignorováno | Číslo stránky, kategorie chyb |
Částečný úspěch musí být napsán jasně
Pokud jste zpracovali pouze devět z deseti stránek, nemůžete se jen tak vrátit k dokumentu a označit vše za hotové. V dodacím listu by měly být uvedeny chybějící stránky a důvody, aby se uživatel mohl rozhodnout o opakovaném odeslání, individuální manipulaci nebo přijetí částečného doručení. Nejlepší je ponechat zdrojové číslo pro číslo stránky a nepřečíslovat je, protože určitá stránka selže, jinak bude pro uživatele obtížné vrátit se na původní stránku.
Úplnost překladu začíná od čísla vstupní stránky
Při použití pracovního postupu OmniDoc (produktový portál) ke zpracování vícestránkových naskenovaných dat můžete porovnat seznam vstupních stránek s rozsahem přeloženého obsahu. Stejný počet stránek automaticky neprokazuje, že obsah je kompletní, ale chybějící stránky nebo čísla stránek jsou cenným upozorněním. Polština by měla předcházet kontrole zdravého rozumu.
📊 Srovnání jádra
| praxe | Použitelné scénáře | Hlavní rizika |
|---|---|---|
| Čtěte pouze první stránku | žádný | Zbývající stránky se tiše ztratí a program neohlásí chybu. |
| Uložte odkaz na snímek přímo při iteraci | Pouze dočasné prohlížení | Obsah na různých stránkách se může navzájem ovlivňovat |
| Okamžitě zkopírujte stránku po stránce nebo proces | Každá stránka musí být použita samostatně | Je vyžadován další záznam výsledků na stránku |
| Uchovávejte všechny snímky v paměti | Malá ukázka s několika stránkami a nízkým rozlišením | Vícestránkové soubory s vysokým rozlišením nadále zabírají paměť |
🎯 Která metoda je pro vás vhodná?
Pokud potřebujete exportovat nebo překládat stránku po stránce
Nejprve spočítejte počet stránek, poté je zpracujte jednu po druhé a zaznamenejte velikost, režim a výsledky zpracování pro každou stránku.
Pokud máte co do činění s velkým počtem skenů s vysokým rozlišením
Použijte řízené dávkové zpracování, abyste se vyhnuli kopírování všech snímků a jejich hromadění v paměti na dobu neurčitou.
Pokud chcete doručit ostatním
Přiložte seznam chybějících stránek a vysvětlení, proč chybí, neoznačte je pouze jako úplné.
❓ Často kladené otázky (FAQ)
1. Pokud program nehlásí chybu, znamená to, že byl TIFF kompletně zpracován?
nejistý. Příklad v článku ukazuje, že program může normálně skončit, když je přečtena pouze první stránka, ale zbývající stránky byly vynechány. Úspěšné otevření souboru a úplné zpracování souboru jsou dvě různé věci.
2. Proč nelze odkaz na každý snímek uložit přímo?
Objekty snímků mohou souviset se základním stavem dekódování. Chcete-li použít každou stránku nezávisle, zkopírujte ji nebo ji zpracujte ihned při iteraci a neukládejte opakovaně odkaz na stejný měnitelný objekt.
3. Znamená stejný počet stránek, že je obsah kompletní?
Takto to nelze uzavřít. Stejný počet stránek automaticky neprokazuje, že je obsah úplný, ale chybějící stránky nebo čísla stránek jsou známkou toho, že musíte být ve střehu, a jazykové leštění by měly předcházet kontroly integrity.
4. Co byste měli dělat, když se nepodaří zpracovat stránku?
Uveďte chybějící stránky a důvody selhání v seznamu doručení a ponechte zdrojové číslo čísla stránky, což uživateli umožní rozhodnout se o opětovném odeslání, samostatném zpracování nebo přijetí částečného doručení.
📝 Shrnutí
Klíčem k vícesnímkovému TIFF je nejprve potvrdit číslo stránky, poté jej zpracovat stránku po stránce a zaznamenat výsledky. Každá stránka musí mít jasný stav a chybějící stránky musí být vypsány.
Vyzkoušejte to hned: Nahrajte dokument a začněte překládat při zachování původního rozvržení
Zdroje: Pillow ImageSequence.


