ubuntuusers.de

didjvu

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

DjVu/djvu-logo.png

Farbige mehrlagige DjVu-Dateien lassen sich mit Open-Source-Programmen nicht ohne Umwege erstellen, da der Quellcode für die Segmentierung nicht freigegeben ist. Eine vollwertige Alternative ist aber mit dem Programm didjvu 🇬🇧 von Jakub Wilk gegeben. Es greift auf das Open-Source-Projekt Gamera 🇬🇧 zurück, um eine Aufsplittung in Vorder- und Hintergrundebene zu realisieren. Mit dieser Zerlegung ist es auch für "Privat"-Anwender einfach möglich, eine bitonale Ebene einer Bildvorlage zu extrahieren, und eine mehrlagige DjVu-Datei zu erstellen; diese kann dann z.B. mit dem Programm ocrodjvu auch mit einer Textebene versehen werden.

Installation

Installation unter Ubuntu 20.04

Das Programm liegt nicht mehr in den Paketquellen vor, und muss daher manuell installiert werden; es benötigt ein Python-2.7-Installation.

Hinweis!

Fremdsoftware kann das System gefährden.

Die aktuelle Version ist 0.9.1 (Stand September 2024), das Programm kann aus Quellcode 🇬🇧 erstellt werden. Dazu wird das tar.gz-Archiv heruntergeladen, entpackt[2], und installiert. Die aktuelle Entwicklerversion kann von der github-Seite 🇬🇧 des Entwicklers bezogen werden. Dazu wird der Code mit dem Befehl[5]

git clone https://github.com/jwilk/didjvu.git 

heruntergeladen (siehe auch Git). Benötigt werden

  • python-gamera (universe)

  • python-pil

  • git

  • docbook-xsl (universe, um die manpage zu erstellen)

  • minidjvu

Befehl zum Installieren der Pakete:

sudo apt-get install python-gamera python-pil git docbook-xsl minidjvu 

Oder mit apturl installieren, Link: apt://python-gamera,python-pil,git,docbook-xsl,minidjvu

Unter Focal Fossa ist das Paket python-gamera nicht mehr in den Quellen; es kann aber auf das Paket aus Ubuntu 18.04 zurückgegriffen werden.

Ein einfaches Paket kann im Downloadverzeichnis mit dem Befehl

sudo checkinstall 

installiert werden; das Programm selbst ist bereits erstellt, so dass ein configure- und make-Aufruf nicht nötig sind.

Installation unter 24.04

Das Originalprogramm ist vom Entwickler Jakub Wilk in Python 2.7 geschrieben worden; diese Version wird allerdings nicht mehr unterstützt und ist in den Quellen nicht mehr vorhanden. Er selbst sieht keine Notwendigkeit, es auf Python 3 zu portieren. Es existiert aber ein fork von Friedrich Froebel, der von pypi.org bezogen werden kann.

Es kann mit allen Python3-Abhängigkeiten systemweit mit z.B. pipx installiert werden:

pipx install didjvu 

Dabei werden auch die benötigten Abhängigkeiten Gamera und Pillow installiert, eine manpage wird so alletrdings nicht erstellt.

Verwendung

didjvu ist ein reines Kommandozeilen-Werkzeug; dabei sind drei Varianten möglich: didjvu encode zu Encodierung einseitiger Dateien, didjvu bundle zum Erstellung mehrseitiger Dateien und didjvu separate, um eine bitonale "foreground mask" des DjVu-Formats aus der Vorlage zu erstellen.

Die allgemeine Syntax auf der Kommandozeile lautet

didjvu {encode|bundle|separate} -o AUSGABEDATEI.djvu [OPTIONEN] EINGABEDATEI 

didjvu kann alle Bildformaten verarbeiten, die von der Python Imaging Library 🇬🇧 unterstützt werden. Die Erstellung lässt sich durch vielfältige Parameter steuern, die für die Varianten unterschiedlich einsetzbar sind.

Funktionsweise

Die Hauptfunktion, die didjvu von den existierende DjVuLibre-Programmen 🇬🇧 absetzt und den entscheidenden Schritt zur automatischen Erstellung vollwertiger DjVu-Dateien mit Open-Source-Verfahren darstellt, ist die Segmentierung der Vorlage und die Erstellung der bitonalen foreground mask, die bisher nur mit proprietären Versionen möglich war. Im Prinzip handelt es sich dabei um ein Schwellwertverfahren, mit dem eine Schwarz-Weiß-Version der Vorlage erstellt und gleich bearbeitet wird. So kann weitestgehend auf einen Einsatz von unpaper oder ähnlichen "Säuberungsverfahren" verzichtet werden, da einerseits über die Optionen --loss-level (--clean etc.), andererseits über die Verwendbarkeit unterschiedlicher Binarisations-Verfahren (Option --method) gezielt Einfluss auf die Qualität dieser bitonalen Ebene genommen werden kann. Die Möglichkeiten der unterschiedlichen Verfahren sind gerade bei "historischen" Vorlagen (alten Drucken, minderwertigem Papier, fleckigen Vorlagen etc.) oder farbigen Vorlagen, die mit einem Textverarbeitungsverfahren "lesbar" gemacht werden sollen, von großem Vorteil. Die verwendbaren Methoden werden in der Gamera-Dokumentation 🇬🇧 kurz vorgestellt. Mit der separate-Variante lassen sich einfach Probeversionen für die verschiedenen Verfahren erstellen, bei der die bitonale Ebene dann als pbm-Datei ausgegeben wird. Diese können dann auch individuell bearbeitet und als Masken über die mask/masks-Option wieder mit den Original-Vorlagen in DjVu-Dokumente zusammengeführt werden.

Durch weitere Optionen lässt sich die Kompressionsrate auch für die anderen Ebenen stark verbessern (Chrominanz, Subsample-Angaben), für große Archivierungsprojekte lassen sich auch bestimmte Namensgebungs- bzw. Nummerierungsvorlagen über die --output/--pageid-template-Option verwenden.

Optionen

didjvu
Option Funktion
verwendbare Optionen für alle Varianten
EINGABE-DATEI [EINGABE-DATEI1 ...] Eingabedatei(en)
-o DATEI, --output DATEI Ausgabe-Dateiname
--loss-level N Stärke der verlustbehafteten Kompression, Werte von 0 - 200
--lossless verlustlose Kompression, Standardeinstellung, entspricht --loss-level=0.
--clean verlustbehaftete Kompression: entfernt einzeln stehende Pixel, entspricht --loss-level=1.
--lossy verlustbehaftete Kompression: fasst Muster mit nur kleinen Unterschieden zusammen. entspricht --loss-level=100
-m, --method Binarisations-Methode, verwendbar sind {bernsen,tsai,white_rohrer,gatos,abutaleb,brink,otsu,djvu,sauvola,niblack,shading-subtraction}, Standard djvu; Verwendbarkeit ggf. von der eingesetzten Gamera-Version abhängig
-v, --verbose ausführliche Ausgabe
-q, --quiet Ausgabe im Terminal wird unterdrückt
-h, --help Hilfe
verwendbare Optionen für encode und bundle
--masks MASKE [MASKE ...] verwendet vorher erstellte Masken (für bundle)
--mask MASKE verwendet eine vorgefertigte Maske (für encode)
--fg-slices N Anzahl der "slices" für den Vordergrund, Standard 100
--fg-crcb {normal,half,full,none} Chrominanz-Encodierung des Vordergrunds, Standard full
--fg-subsample N Subsample-Rate für den Vordergrund, Werte von 1 - 12, Standard 6
--bg-slices N+...+N | --bg-slices N,...,N Anzahl der "slices" für jeden einzelnen Hintergrund-"chunk", Standard 74+10+6+3
--bg-crcb {normal,half,full,none} Chrominanz-Encodierung des Hintergrunds, Standard normal
--bg-subsample N Subsample-Rate für den Hintergrund, Werte von 1 - 12, Standard 3
-d N, --dpi N Bildauflösung in dpi, Standard 300, möglich sind Werte zwischen 72 und 6000
verwendbare Optionen für encode und separate
--output-template TEMPLATE Benennungsschema für die Ausgabedatei, siehe Manpage
verwendbare Optionen nur für bundle
--pageid-template TEMPLATE Benennungsschema für die Seitennamen ("page identifiers"), siehe Manpage
-p N, --pages-per-dict N Anzahl der Seiten, die in einem Durchgang verarbeitet werden sollen, Standard 1

Alternativen

Eine Alternative stellt Djvu Solo 3.1 dar. Es ist Freeware und läuft unter wine. Eine Open-Source-Alternative gibt es nicht. Theoretisch ließen sich "händisch" über Bildbearbeitungsprogramme (wie GIMP) bitonale Versionen von farbigen Vorlagen erstellen, die dann mit den DjVuLibre-Programmen auch als Multilayer-DjVu zusammengefasst werden könnten. Der Aufwand ist aber immens, und für größere Projekte kaum praktikabel. Die DjVuLibre-Encoder c44 🇬🇧 und cbj2 🇬🇧 liefern entweder keine Segmentierung oder nur eine Schwarz-Weiß-Ebene; minidjvu ist ebenfalls nur eine "Wrapper", der auf cbj2 und djvumake 🇬🇧 zurückgreift und mit dem nur Schwarz-Weiß-Vorlagen verarbeitet werden können.

Programme

didjvu kommt standardmäßig in xsane2djvu zur Encodierung zum Einsatz, auch mit bscand und pct-scanner-script kann der Encoder verwendet werden.

Diese Revision wurde am 25. September 2024 09:23 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: djvu, Büro, Grafik, Kommunikation, Bildung, Python