Ein elektronisches Buch, allgemein bekannt als eBook, ist ein Buch in digitaler Form, das auf verschiedenen elektronischen Geräten gelesen werden kann. Zu diesen Geräten gehören dedizierte eReader wie Kindle oder Laptops, Desktop-Computer und Smartphones. Es gibt viele beliebte Dateiformate von eBooks, die auf dem Markt verwendet werden, darunter: EPUB, FictionBook FB2, Microsoft Compiled HTML Help - CHM, DjVu, MOBI, PDF und viele andere. Als Programmierer hilft Ihnen dieser Artikel beim programmgesteuerten Extrahieren von Bildern aus eBooks in C# innerhalb von .NET-Anwendungen.

Nachfolgend werden folgende Themen behandelt:

.NET-API für die Bildextraktion aus eBooks

Zum Extrahieren von Bildern aus eBooks verwende ich in den C#-Beispielen dieses Artikels die API GroupDocs.Parser for .NET. Zusammen mit den eBooks unterstützt diese API das Parsen und Extrahieren von Bildern aus Textverarbeitungsdokumenten, Tabellenkalkulationen, PDFs, Präsentationen, E-Mails, ZIP-Archiven und vielen anderen Dokumentformaten.

Sie können die DLLs oder das MSI-Installationsprogramm aus dem Download-Bereich herunterladen oder die API in Ihrer .NET-Anwendung über NuGet installieren.

PM> Install-Package GroupDocs.Parser

Bilder aus EPUB-eBooks in C# extrahieren

Beginnen wir mit dem EPUB-eBook, um es nach Bildern zu durchsuchen. Die folgenden Schritte, gefolgt vom C#-Code, parsen das EPUB-eBook und extrahieren alle darin enthaltenen Bilder.

  • Klassenobjekt Parser erstellen.
  • Verwenden Sie die Methode GetImages, um alle Bilder des EPUB-eBooks zu extrahieren.
  • Durchlaufen Sie die extrahierten Bilder, um sie einzeln zu speichern.
Alice EPUB

EPUB-eBook aus der Adobe [Sample eBook Library][12]

Der folgende C#-Code implementiert die erwähnten Parsing-Schritte, um das oben gezeigte EPUB-eBook zu parsen, und speichert die extrahierten Bilder einzeln auf der Festplatte.

// Analysieren Sie eBooks, um Bilder aus EPUB-, FB2-, CHM-Dateien zu extrahieren und in C# auf der Festplatte zu speichern
using (Parser parser = new Parser("ebook.epub"))
{
    // Bilder aus dem eBook extrahieren
    IEnumerable<PageImageArea> images = parser.GetImages();
    ImageOptions options = new ImageOptions(ImageFormat.Jpeg);
    int imageNumber = 0;
    // Über extrahierte Bilder iterieren
    foreach (PageImageArea image in images)
    {
        image.Save(("Image-" + imageNumber.ToString() + image.FileType.Extension), options);
        imageNumber++;
    }
}
Bild aus EPUB in C# extrahieren

Als Ergebnis werden alle verfügbaren Bilder gespeichert. Hier ist eines der gezeigten Bilder als Beispiel.

Sie können die extrahierten Bilder in einem der folgenden unterstützten Bilddateiformate speichern:

*JPG *PNG

  • WEBP *GIF *BMP

Bilder aus FB2, CHM eBooks in C# extrahieren

Wenn Sie das eBook in FB2, CHM oder einem anderen Format haben, können Sie seine Bilder auf die gleiche Weise extrahieren. Sie müssen Ihr eBook nur beim Erstellen des Objekts an den Parser-Konstruktor übergeben. Dann extrahiert die GetImages-Methode Bilder aus allen bereitgestellten eBooks mit demselben C#-Code.

// Pass the FB2, CHM, PDF, or any other eBook to Parser contructor
Parser parser = new Parser("ebook.fb2"); // FB2
// Parser parser = new Parser("ebook.chm"); // CHM
// Parser parser = new Parser("ebook.pdf"); // PDF
IEnumerable<PageImageArea> images = parser.GetImages();

Fazit

Ich hoffe, dass Sie jetzt bequem alle Bilder aus eBooks mit EPUB-, FB2-, CHM- und anderen Dateiformaten in Ihren .NET-Anwendungen programmgesteuert abrufen können. Mit der GroupDocs.Parser for .NET-API können Sie sogar Ihre eigene Anwendung zum Extrahieren von Bildern erstellen.

Weitere Informationen zur API finden Sie unter Dokumentation oder Open-Source-Beispiele auf GitHub. Bei weiteren Problemen können Sie sich an den schnellen Support im Forum wenden.

Siehe auch