Um livro eletrônico, popularmente conhecido como eBook, é um livro em formato digital que pode ser lido em vários dispositivos eletrônicos. Esses dispositivos incluem eReaders dedicados como Kindle, ou laptops, computadores desktop e smartphones. Existem muitos formatos de arquivo populares de eBooks em uso no mercado que incluem; EPUB, FictionBook FB2, Ajuda HTML Compilada da Microsoft - CHM, DjVu, MOBI, PDF e muitos outros. Como programador, este artigo o ajudará a extrair programaticamente imagens de eBooks em C# dentro de aplicativos .NET.

Os seguintes tópicos serão abordados a seguir:

API .NET para extração de imagens de eBooks

Para a extração de imagens de eBooks, usarei a API GroupDocs.Parser for .NET nos exemplos C# deste artigo. Juntamente com os eBooks, esta API suporta análise e extração de imagens de documentos de processamento de texto, planilhas, PDF, apresentações, e-mails, arquivos ZIP e muitos outros formatos de documentos.

Você pode baixar as DLLs ou o instalador MSI da seção de downloads ou instalar a API em seu aplicativo .NET via NuGet.

PM> Install-Package GroupDocs.Parser

Extraia imagens do eBook EPUB em C

Vamos começar com o eBook EPUB para analisá-lo para imagens. As etapas a seguir seguidas pelo código C# analisam o eBook EPUB e extraem todas as imagens nele.

  • Criar objeto de classe Parser.
  • Use o método GetImages para extrair todas as imagens do eBook EPUB.
  • Percorra as imagens extraídas para salvar estas, uma a uma.
Alice EPUB

eBook EPUB da Adobe [Exemplo de biblioteca de eBooks][12]

O código C# a seguir implementa as etapas de análise mencionadas para analisar o eBook EPUB mostrado acima e salva as imagens de extração uma a uma no disco.

// Analise eBooks para extrair imagens do arquivo EPUB, FB2, CHM e salve em disco em C#
using (Parser parser = new Parser("ebook.epub"))
{
    // Extraia imagens do eBook
    IEnumerable<PageImageArea> images = parser.GetImages();
    ImageOptions options = new ImageOptions(ImageFormat.Jpeg);
    int imageNumber = 0;
    // Iterar sobre imagens extraídas
    foreach (PageImageArea image in images)
    {
        image.Save(("Image-" + imageNumber.ToString() + image.FileType.Extension), options);
        imageNumber++;
    }
}
Extrair imagem do EPUB em C #

Como resultado, todas as imagens disponíveis serão salvas. Aqui está uma das imagens mostradas como exemplo.

Você pode salvar as imagens extraídas em qualquer um dos seguintes formatos de arquivo de imagem suportados:

  • JPG
  • PNG
  • WEBP *GIF
  • BMP

Extraia imagens de eBooks FB2, CHM em C

Se você tiver o eBook em FB2, CHM, ou com algum outro formato, poderá extrair suas imagens da mesma forma. Você só precisa passar seu eBook para o construtor Parser enquanto cria o objeto. Em seguida, o método GetImages extrairá imagens de qualquer um dos eBooks fornecidos usando o mesmo código 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();

Conclusão

Espero que agora você se sinta confortável em obter programaticamente todas as imagens de eBooks com EPUB, FB2, CHM e outros formatos de arquivo em seus aplicativos .NET. Você pode até mesmo construir seu próprio aplicativo de extração de imagens usando a API GroupDocs.Parser for .NET.

Para saber mais sobre a API, você pode visitar documentação ou exemplos de código aberto no GitHub. Para quaisquer outros problemas, você pode entrar em contato com o suporte rápido no fórum.

Veja também