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 zur Bildextraktion aus eBooks
- Bilder aus EPUB-eBook in C# extrahieren
- Bilder aus FB2, CHM-eBooks in C# extrahieren
.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.
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++;
}
}
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.