ddjvu (DjVuLibre)
Dekodér DjVu souborů, jehož výstupem je bitmapový soubor dekódované obrazové vrstvy.
Umožňuje na základě předaných voleb dekódovat nejenom celý DjVu dokument, ale i vybranou parametricky definovanou část obrazové vrstvy, takže se dá využít i k vytvoření jednoduché čtečky DjVu souborů.
Použití ddjvu
ddjvu [ -format=formát_výstupu ] [ volby ] [ vstupní_djvu_soubor ] [ výstupní_soubor ]
Pokud není jméno výstupního souboru uvedeno, nebo je-li místo něj uvedená pomlčka (-) je výstup automaticky přesměrován na standardní výstup, který lze pomocí roury předat k dalšímu zpracování.
To však neplatí pro všechny výstupní formáty. Při exportu do PDF nebo TIFFu musí být uvedeno jméno výstupního souboru vždy. |
Výhodou ddjvu je, že může přijímat vstupní data přes rouru (|). V takovém případě je třeba místo cesty ke vstupnímu DjVu souboru uvést pomlčku (-).
Podporované výstupní formáty
- -format
- Pokud není tato volba uvedena vůbec, dekóduje ddjvu pouze první stránku předaného dokumentu, s výchozím nastavením volby
-scale=100
. Jinak jsou podporovány následující formáty:- pbm výstupem bude černobílý obraz ve formátu PBM
- pgm výstup bude ve stupních šedi, ve formátu PGM
- ppm výstup bude v indexovaných barvách, ve formátu PPM
- pnm výstup bude v RGB barvách, ve formátu PNM
- rle proudový výstup v RLE formátu (viz csepdjvu)
- tiff výstup lze uložit pouze do multipage souboru, která bude ve formátu TIFF
- pdf výstup lze uložit pouze do vícestránkového souboru, který bude ve formátu PDF
Rozsah exportovaných stránek
- -page
- Pokud není specifikován rozsah stránek, jsou postupně dekódovány všechny stránky dokumentu, a jako proud dat zapsány do výstupního souboru. Rozsah stránek lze specifikovat buď konkrétními pořadovými čísly požadovaných stránek, oddělených čárkami, či případně rozsahem, kdy je pořadové číslo stránky kterou má rozsah začínat následováno pomlčkou a pořadovým číslem stránky, kterou má příslušný rozsah končit.
- -eachpage
- Je-li uvedena tato volba, nebudou všechny stránky uoženy do jednoho souboru, ale rozděleny do samostatných souborů. Ty budou pojmenovány a očíslovány dle specifikace %d v názvu cílového souboru. Specifikace pro %d je podobná jako při použití příkazu printf Viz příklad:
ddjvu -format=rle -page=4-12 -eachpage soubor%04d.rle
Výstupem budou vyexportované stránky 4 až 12, kdy jména osmi cílových souborů budou:
- soubor0004.rle, … až … , soubor0012.rle
- -skip
- Tato volba potlačí výchozí chování dekodéru v případě, kdy narazí na poškozenou DjVu stránku. Za normálních okolností se proces zpracování přeruší. Při této volbě se poškozená stránka přeskočí, a zpracování pokračuje další stránkou DjVu dokumentu.
Volba exportované vrstvy
- -mode
- Určuje s jakou obrazovou vrstvou DjVu souboru se má při dekódování pracovat:
- color (default) na výstupu bude plnobarevný obraz
- black bude exportovat pouze černobílou kresbu
- mask bude pracovat pouze s bitonální maskou
- foreground použije pouze vrstvu popředí
- background použije pouze vrstvu pozadí
Volba která ovlivňuje kvalitu exportovaného obrazu
- -quality
- Volba pro nastavení výstupní kvality exportovaného obrazu dává smysl pouze v případě výstupu do souborů ve formátu TIFF a PDF. Parametrem může být:
- číselná hodnota faktoru pro kvantizaci obrazu pro JPG, což je celé číslo v rozmezí od 25 do 150 (optimální je hodnota je asi 80)
- klíčové slovo uncompressed, které zcela zamezí použití komprese
- klíčové slovo deflate zajistí, že se u formátu TIFF u obrázků, které nelze komprimovat pžes TIFF/G4 použije kompresní algoritmus DEFLATE[1], bude-li ovšem k dispozici. Jinak se použije PACKBITS (jednoduchý bezztrátový kompresní RLE algoritmus)
Volby které ovlivňují parametry exportovaného obrázku
- -n
- Na místě n může být uvedena celočíselná hodnota, v rozmezí od 1 do 12, kterou lze ovlivnit přepočet rozměru výstupního obrázku, vůči rozměru původního DjVu dokumentu. Hodnota -1 tedy znamená, že velikost obrázku na výstupu bude stejná jako byla velikost DjVu dokumentu. Alternativně lze místo tohoto zápisu použít volbu
-subsample=
n.
- -scale
- Nastavuje relativní zvětšení (či zmenšení) obrazu velikosti obrazu vůči rozměrům a hodnotě dpi nastavené v rámci stránky DjVu dokumentu. Tzn. že pokud je má DjVu dokument hodnotu dpi 300, a jako hodnotu tohoto parametru nastavíme rovněž 300, bude výsledek stejný, jako kdybychom tuto volbu vůbec neuvedli (100%). Vyšší hodnota tedy znamená zvětšení obrazu a nižší jeho zmenšení.
- -size
- Určuje rozměry WxH výstupního obrazu. Pokud nemá být striktně dodržen poměr stran, je třeba uvést také volbu
-aspect=no
. - -aspect
- Hodnotou této volby může být buď yes (výchozí hodnota), nebo no. V podstatě se tak dá jednoznačně najevo, jestli se má při přepočtu velikosti exportovaného obrazu zachovat poměr stran, nebo ne.
Specifikace vybraného segmentu
- -segment
- Vypreparování výřezu z celé vyrenderované stránky je zbytečně zdlouhavá operace, kterou lze obejít určením konkrétního segmentu, určeného souřadnicemi levého dolního rohu (bod nula je u DjVu dokumentů v levém dolním rohu stránky) X a Y a šířkou a výškou vybrané oblasti (WxH). Tyto parametry se volbě předají ve formátu: WxH+X+Y
ddjvu -format=pbm -page=4 -segment=400x600+100+100 -mode=black -size=800x800 -aspect=no vyrez.pbm
Výstupem tohoto příkazu bude bude vyseparovaná černobílá oblast o velikosti 400x600 pixelů, ze strany 4, která se nachází 100 pixelů od levého a spodního okraje. Deformovaná do černobílého čtverce o straně 800 pixelů.
Pokud chceme měnit rozměry vybraného segmentu musí být za volbou -size vždy následovat volba -aspect=no . Bez toho by na výstupu byla vždy jen prázdná plocha.
|
- ↑ DEFLATE [di'fleit], je kompresní algoritmus založený na kombinací LZ77 a Huffmanova kódování, ze kterého vychází např. gzip, nebo LZMA.