Skip to content

A simple comic/manga reader with support for text capture, meaning of kanji and words and bilingual reading.

Notifications You must be signed in to change notification settings

JhonnySalles/BilingualMangaReader

Repository files navigation

BilingualMangaReader

Leitor de mangas offline, no qual possui compatibilidade com Tesseract e Google Vision para utilização de OCR, vínculo de dois arquivos em idiomas diferentes com facilidade na troca entre as páginas de ambos e compatibilidade com textos extraido e processado através do programa MangaExtractor

🚧 BilingualMangaReader 🛑 Descontinuado... 🚧

⚠ Projeto migrado à BilingualReader 🚸

Build Status

SobreBibliotecas utilizadasJson processadoEstrutura do arquivo de legendaHistórico de ReleaseFeaturesContribuindoInstalaçãoExemplos

Sobre

Programa foi criado em Kotlin, onde foi utilizado algumas bibliotecas que estarão listadas mais abaixo para carregamento das imagens e leitura de arquivos jsons.

O aplicativo foi projetado para reconhecer arquivos cbr/rar e cbz/zip em uma pasta de biblioteca, onde irá listar todas os arquivos encontrados na pasta informada.

Também irá salvar algumas preferências e o progresso e tem suporte a furigana e nivel jlpt do kanji em cores.

Possui compatibilidade com o Tesseract e Google Vision para reconhecimento de caracteres em imagens, no qual comparado a versão de computador e em teste realizado é bem limitado, o que apenas faz jus o reconhecimento para kanjis e não palavras inteiras.

Vinculo entre dois arquivos diferentes para realizar a troca de página entre os arquivos de forma fácil com apenas um clique de botão, no qual pode auxiliar na leitura e aprendizado de um novo idioma.

Bibliotecas utilizadas

  • Picasso - Uma poderosa biblioteca de download e cache de imagens para Android.
  • Gson - Uma biblioteca para conversão de json em classe.
  • Sudachi - Uma excelente api para reconhecimento de vocabulário dentro de uma frase em japonês, como também sua leitura, forma de dicionário e afins.
  • Room - Uma biblioteca nativa com vários recusos para gerenciar banco de dados SQLite.
  • PageView - Implementado a estrutura de apresentação de imagens em carrocel.
  • Junrar - Biblioteca para leitura e extração de arquivos rar e cbr.
  • Kaku - Leitor OCR para android. "Apenas chamada por dentro aplicativo, necessário estar instalado."
  • Kuromoji - Analizador morfológico japonês.
  • Sudachi - Sudachi é um analisador morfológico japonês.
  • FuriganaTextView - TextView personalizado para Android que renderiza texto em japonês com furigana.
  • Tesseract4Android - Poderosa biblioteca que faz a comunicação com o Tesseract OCR.
  • LogBack - Biblioteca que traz o poderoso logback para o android.
  • TwoWayView - Biblioteca para apresentação de lista, grids e afins com formato horizontal e vertical.
  • Retrofit 2 - Popular biblioteca para HTTPs no Android.

Json processado

Caso tenha alguma dúvida sobre como processar o json favor entrar em contato. Em breve estarei disponibilizando as legendas que já processadas.

Legendas do manga de exemplo.

Estrutura da classe do arquivo de legenda

O aplicativo é também compatível com legendas extraidas e pré processadas com o programa MangaExtractor, onde após exportar para json as legendas com o formato abaixo, é possível carrega-los tanto embutido no arquivo de manga (rar/zip/tar), como também importado um arquivo de json solto localizado em alguma pasta no celular.

List<Class> capitulos          # Lista de classes de capitulos
├── id
├── manga                  # Nome do manga
├── volume              
├── capitulo
├── linguagem              # Atualmente é suportado em linguagem Inglês, Japonês e Português.
├── scan
├── isExtra
├── isRaw
├── isProcessado
├── List<Class> paginas    # Array de classes páginas
│   ├── nome               # Nome da imagem que está sendo processado
│   ├── numero             # Um contador sequencial das imagens que estão no diretório
│   ├── hashPagina
│   ├── isProcessado
│   ├── List<Class> Textos # Array de classe dos textos da página
│   │   ├── sequencia
│   │   ├── posX1          # Coordenadas da fala na imagem
│   |   ├── posY1              
│   |   ├── posX2              
│   |   └── posY2 
|   ├── hashPagina         # Hash md5 da imagem que foi processada, para que possa localizar a legenda desta página
│   └── vocabulario        # Vocabulário da página
│       ├── palavra       
│       ├── portugues      # Significado da palavra em português
│	    ├── ingles         # Significado da palavra em inglês
│	    ├── leitura        # Leitura em katakana
│       └── revisado       # Flag sinalizadora que o vocabulário foi revisado ou não. 
└── vocabulario            # Vocabulário do capitulo
    ├── palavra            
    ├── portugues          # Significado da palavra em português
    ├── ingles             # Significado da palavra em inglês
    ├── leitura            # Leitura em katakana
    └── revisado           # Flag sinalizadora que o vocabulário foi revisado ou não.

Estrutura de classe com informações da página que possui a legenda pré processada, podendo ser obtida de uma raw ou traduzida de alguma fã sub. Com ele será possível apresentar a tradução ou significados dos kanjis presente na página.

Histórico de Release

  • 0.1.0
    • Uso em desenvolvimento.
  • 0.2.0
    • Leitor de manga com suporte a rar/zip/cbr/cbz.
    • Recursos principais de um leitor de manga.
    • Adicionar favorito.
    • Exclusão do arquivo.
    • Ajuste de brilho e cor da imagem.
    • Reconhecimento de fugirana nos textos em japonês.
    • Carregar legendas externas e interna ao arquivo.
    • Detalhes sobre o kanji e nivel jlpt.
    • Primeira versão estável publicada.
  • 0.2.1
    • Localização do texto com clique longo no balão de fala.
    • Adicionado tela de ajuda com detalhes do funcionamento.
    • Adicionado controle de luz azul e sépia.
  • 0.2.2
    • Ajustes de bugs e erros.
    • Novo calculo de posicionamento para a aplicação da legenda
  • 0.2.7
    • Adicionado método para vincular páginas de dois arquivos diferentes.
    • Adicionado método de arrasta e solta para a organização das imagens.
    • Adicionado método para vincular páginas duplas quando necessário no arquivo vinculado.
    • Implementado a correções de alguns bugs.
    • Correção para a leitura aproveitar a tela inteira em android recente.
    • Ajuste na busca da legenda e a implementação da busca pela página vinculada.
  • 0.2.8
    • Implementado métodos para rastrear possiveis erros.
    • Ajuste de erros e bug.
    • Refatorado alguns icones.
    • Implementado a chamada ao App Kaku.
  • 0.2.9
    • Otimização para o aplicativo utilizar menos memória.
    • Otimização no carregamento das capas.
    • Implementado a utilização da biblioteca LruCache para as imagens.
    • Implementação de novas funcionalidades de ordenação na tela de vinculo de arquivo.
  • 0.2.10
    • Implementado nova funcionalidade de OCR, utilizando-se da tecnologia do Tesseract e Google Vision.
    • Adicionado nova funcionalidade e painel flutuante que irá recortar um pedaço da imagem para ser feito o reconhecimento de caractere no Tesseract.
    • Adicionado novo layout na janela flutuante para receber as informações do texto reconhecido, como também irá manter uma lista do que foi capturado em tempo de execução.
    • Adicionado para o Tesseract os data de treinamento nos idiomas Protuguês, Inglês e Japonês.
    • Implementado a possibilidade de ajustar a janela flutuante.
  • 0.2.11
    • Otimização na biblioteca, tanto no carregamento dos itens quando na funcionalidade.
    • Refeito o layout para melhor aparência.
    • Adicionado nova tela com informações adicionais sobre o arquivo, com informações de capítulos e outros arquivos vinculados.
    • Adicionado animações nas transições de tela e nos arquivos da biblioteca.
    • Implementado um novo painel flutuante com botões essenciais para leitura, não sendo necessário sair da tela cheia para executar algum comando.
  • 0.2.14
    • Refatorado alguns nomes de icones.
    • Ajuste de layout.
    • Correção em bug no scrool automático.
    • Ajuste de cores do projeto.
    • Implementado backup do banco de dados.
  • 0.2.15
    • Ajuste na ordenação de páginas.
    • Criado tela para verificação do vocabulário.
  • 0.2.16
    • Impelemntado novo tema de detalhe sobre o kanji.
    • Adicionado banco de dados do kanji.
    • Ajuste de layout.
    • Implemetado temas no aplicativo.
  • 0.2.17
    • Implementado zoom na imagem com o toque longo.
    • Ajustes nas cores e layouts.
    • Adicionado funcionalidade copiar o vocabulário no toque longo.
    • Implementado para desfazer até 10 ultimas alterações na tela de vínculo de arquivos.
    • Correção de bug na ordenação das páginas na tela de vinculo de arquivos.
    • Implementado para o aplicativo realizar a abertura de qualquer arquivo cbr ou zip diretamente.
    • Adicionado atalhos para ultimos arquivos abertos.
  • 0.2.18
    • Implementado popup na tela de vínculo de arquivos para visualizar a imagem em maior tamanho.
    • Otimizado o carregamento das imagens na tela de vinculo de arquivos.
    • Implementado função de zoom de pinça no popup de imagem.
    • Correção no vocabulário para aceitar a tradução em português e inglês.
    • Correção para a troca da página entre os arquivos vinculado esteja mantendo a posição da leitura.
  • 0.2.19
    • Atualizado as bibliotecas.
    • Adicionado animações nos botões.
    • Adicionado capitulos na barra de progresso.

Features

  • Abertura de arquivos cbr/rar
  • Abertura de arquivos cbz/zip
  • Abertura de arquivos Tar
  • Leitor com o minimo de recursos para visualização do manga
  • Listar arquivos na pasta de biblioteca
  • Guardar informações sobre progresso
  • Carregar legendas pré processadas
  • Localização da legenda em outro idioma
  • Popup flutuante da legenda para facilitar a leitura
  • Impressão na imagem das coordenadas de texto extraido para melhor localizar a legenda
  • Reconhecimento de furigana do texto em japonês
  • Reconhecimento do nivel jlpt do kanji
  • Ajustes no brilho e cores da imagem
  • Melhorias e ajuste da interface
  • Implementação de lista de histórico
  • Utilização de vocabulário
  • Significado do kanji
  • Favoritar o kanji para estudo posterior
  • Interface para modo tablet
  • Localizar no vocabulário na ao toque na palavra
  • Troca das legendas entre idiomas selecionados (devido a diferenças de paginas entre versões pode não localizar de forma satisfatória)
  • Luz azul para leitura norturna
  • Localizar a legenda pela cordenada do texto
  • Ajuste para a leitura aproveitar a tela inteira do celular
  • Adicionado nova tela para vincular as páginas de dois arquivos
  • Implementar a abertura de um segundo arquivo para leitura de multi idioma (com a troca de imagens entre o original e outro arquivo em outro idioma)
  • Implementar a troca de imagens na leitura para a página vinculada
  • Implementar a re-organização de outras páginas ao movimentar uma página em específica
  • Adicionar funcionalidade para páginas duplas
  • Ajustar a busca das legendas para utilizar da página vinculada
  • Implementar a organização dos arquivos vinculados por idioma, sendo possível o vinculo de mais de um arquivo e manter a organização feita
  • Implementar rastreamento de erros e logs.
  • Adicionado a chamada ao aplicativo Kaku
  • Implementar novas funcionalidades de ordenação na tela de vinculo de arquivo.
  • Implementar ordenação de páginas simples e dupla.
  • Implementar ordenação de páginas automática, utilizando o tamanho da imagem para identificar se é página dupla.
  • Implementar exclusão do vinculo do arquivo.
  • Ajustar o carregamento das imagens de capa, realizar otimização no aplicativo e menor consumo de memória.
  • Implementar o Tesseract OCR ao projeto e realizar identificação de palavras em imagens.
  • Ajustar o painel flutuante para receber palavras que foram reconhecidas pelo Tesseract.
  • Implementar a api Google Vision para reconhecimento de palavras em imagens.
  • Favoritar vocabulário para estudo posterior
  • Implementar temas no aplicativo.
  • Adição de dicionarios japonês.
  • Adição de várias pastas de biblioteca.
  • Implementar zoom nas imagens na tela de vinculo de arquivo.
  • Implementar novas ordenações na tela de vinculo de arquivo.
  • Abertura de arquivos diretamente pelo aplicativo.
  • Adicionado atalho para ultimos arquivos lidos.
  • Implementar nova funcionalidade para leituras de novel.
  • Implementar abertura de arquivos pdf.
  • Implementar abertura de arquivos ebook.
  • Implementar abertura de páginas da web.
  • Exportar vocabularios ao Anki

Contribuindo

  1. Fork (https://github.com/JhonnySalles/BilingualMangaReader/fork)
  2. Crie sua branch de recurso (git checkout -b feature/fooBar)
  3. Faça o commit com suas alterações (git commit -am 'Add some fooBar')
  4. Realize o push de sua branch (git push origin feature/fooBar)
  5. Crie um novo Pull Request

Instalação

Para executar o projeto é necessário ter o android studio instalado junto com uma versão do emulador.

Abra então no android studio a pasta do projeto e aguarde o gradle processar as dependências

Após a instalação das dependências compile e execute o projeto, no qual será então aberto no emulador.

Exemplos

Algumas imagens do aplicativo

Biblioteca

Leitor

Leitor

Recursos

Vinculo de paginas em dois arquivos

Paginas não vinculadas

Paginas duplas

Popup flutuante

Localização do texto reconhecido com ocr

Informações da legenda

Informações do kanji

Informações do kanji

Vocabulário

Estrutura do arquivo recomendada

Estrutura de pasta

Recomendo embutir a legenda no arquivo e separar as pastas por capitulo para facilitar a localização da legenda correta quando não for possível o aplicativo encontrar a pagina correspondente.

About

A simple comic/manga reader with support for text capture, meaning of kanji and words and bilingual reading.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published