Un livre électronique, communément appelé eBook, est un livre sous forme numérique lisible sur divers appareils électroniques. Ces appareils incluent des liseuses dédiées telles que Kindle, ou des ordinateurs portables, des ordinateurs de bureau et des smartphones. Il existe de nombreux formats de fichiers populaires de livres électroniques utilisés sur le marché qui incluent ; EPUB, FictionBook FB2, Microsoft Compiled HTML Help - CHM, DjVu, MOBI, PDF et bien d’autres. En tant que programmeur, cet article vous aidera à extraire par programme des images de livres électroniques en C# dans des applications .NET.

Les sujets suivants seront abordés ci-dessous :

API .NET pour l’extraction d’images à partir de livres électroniques

Pour l’extraction d’images à partir d’eBooks, j’utiliserai l’API GroupDocs.Parser for .NET dans les exemples C# de cet article. Outre les livres électroniques, cette API prend en charge l’analyse et l’extraction d’images à partir de documents de traitement de texte, de feuilles de calcul, de PDF, de présentations, d’e-mails, d’archives ZIP et de nombreux autres formats de documents.

Vous pouvez télécharger les DLL ou le programme d’installation MSI à partir de la section des téléchargements ou installer l’API dans votre application .NET via NuGet.

PM> Install-Package GroupDocs.Parser

Extraire des images d’un livre électronique EPUB en C#

Commençons par l’eBook EPUB pour l’analyser à la recherche d’images. Les étapes suivantes suivies par le code C # analysent le livre électronique EPUB et en extraient toutes les images.

  • Créer un objet de classe Parser.
  • Utilisez la méthode GetImages pour extraire toutes les images du livre électronique EPUB.
  • Parcourez les images extraites pour les enregistrer, une par une.
Alice EPUB

Livre électronique EPUB d’Adobe [Sample eBook Library][12]

Le code C # suivant implémente les étapes d’analyse mentionnées pour analyser le livre électronique EPUB illustré ci-dessus et enregistre les images extraites une par une sur le disque.

// Analyser des livres électroniques pour extraire des images d'un fichier EPUB, FB2, CHM et les enregistrer sur le disque en C #
using (Parser parser = new Parser("ebook.epub"))
{
    // Extraire des images de l'eBook
    IEnumerable<PageImageArea> images = parser.GetImages();
    ImageOptions options = new ImageOptions(ImageFormat.Jpeg);
    int imageNumber = 0;
    // Itérer sur les images extraites
    foreach (PageImageArea image in images)
    {
        image.Save(("Image-" + imageNumber.ToString() + image.FileType.Extension), options);
        imageNumber++;
    }
}
Extraire l'image de l'EPUB en C#

En conséquence, toutes les images disponibles seront enregistrées. Voici l’une des images présentées à titre d’exemple.

Vous pouvez enregistrer les images extraites dans l’un des formats de fichier image pris en charge suivants :

  • JPG
  • PNG
  • WEBP
  • GIF * BMP

Extraire des images de FB2, CHM eBooks en C

Si vous avez le livre électronique au format FB2, CHM ou dans un autre format, vous pouvez extraire ses images de la même manière. Il vous suffit de passer votre eBook au constructeur Parser lors de la création de l’objet. Ensuite, la méthode GetImages extraira les images de n’importe lequel des livres électroniques fournis en utilisant le même code C#.

// 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();

Conclusion

J’espère que vous serez maintenant à l’aise pour obtenir par programmation toutes les images des livres électroniques avec EPUB, FB2, CHM et d’autres formats de fichiers dans vos applications .NET. Vous pouvez même créer votre propre application d’extraction d’images à l’aide de l’API GroupDocs.Parser for .NET.

Pour en savoir plus sur l’API, vous pouvez consulter la documentation ou des exemples open source sur GitHub. Pour tout autre problème, vous pouvez contacter le support rapide sur le forum.

Voir également