ddjvu (DjVuLibre)

Z thewoodcraft.org
Stránka byla naposledy editována 17.8.2023

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í.

Upozorně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.
PoznámkaJe-li rozsah uveden obráceně (tj. vyšší číslo následuje nižší), budou stránky exportovány v obráceném pořadí
-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:
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ů.

Upozornění 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.
  1. 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.