Leitor de mangas e comics offline, bem como ebooks em geral, 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
Sobre • Bibliotecas utilizadas • Json processado • Estrutura do arquivo de legenda • Histórico de Release • Features • Contribuindo • Instalação • Exemplos
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, cbz/zip, cbt/tar e cb7/7z em uma pasta de biblioteca, onde irá listar todas os arquivos encontrados na pasta informada.
Existe a opção de abertura nos mais populares formatos de ebooks da atualidade como epub/epub3, awz/awz3 e mobi.
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, aprendizado e entendimento de um novo idioma.
- 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.
Caso tenha alguma dúvida sobre como processar o json favor entrar em contato. Em breve estarei disponibilizando as legendas que já processadas.
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.
- 1.0.0
- Commit inicial com as alterações do projeto base.
- Implementado a abertura de livros no formato PDF, EPUB, MOBI e FB2.
- 1.0.1
- Em progresso.
- Leitor de Mangas/Comics
- Abertura de arquivos cbr/rar
- Abertura de arquivos cbz/zip
- Abertura de arquivos cbt/tar
- Abertura de arquivos cb7/7z
- Leitor de Livros
- Abertura de arquivos pdf
- Abertura de arquivos epub/epub3 [ebook]
- Abertura de arquivos mobi [ebook]
- Abertura de arquivos fb2 [ebook]
- Abertura de arquivos djvu [ebook]
- Arquivo de legendas pré processadas [Mangas/Comics]
- Localização da legenda em outro idioma [Mangas/Comics]
- Auto-Scroll quando pressionar avançar [Mangas/Comics]
- Zoom com o clique longo [Mangas/Comics]
- Impressão na imagem as coordenadas de legenda para melhor entendimento
- Dicionarios Japonês
- Reconhecimento de furigana do texto em japonês
- Apresentação do nivel jlpt do kanji
- Significado do kanji
- Implementação de temas
- Alternar entre legendas selecionados (devido a diferenças de paginas entre as versões em diferente idioma a localização não ocorria de forma satisfatória)
- Abertura de um segundo arquivo para leitura de multi idioma (alternar entre as imagens da página com um siples botão) [Mangas/Comics]
- Permitir a modificação do vinculo entre as páginas dos dois arquivos [Mangas/Comics]
- Automatizar o vinculo entre as páginas, levando em consideração páginas duplas [Mangas/Comics]
- Rastreamento de erros e logs
- Chamada ao aplicativo Kaku para utilização de OCR
- Reconhecimento de palavras utilizando o Tesseract OCR/Google Vision
- Dicionarios Japonês
- Leitura de metadata de Mangas/Comics no formato ComicRack
- Sugestões de filtros na biblioteca (Autor, Extensão, Série, Volume, editora)
- Adicionar marcação do capítulo na barra de progresso (capítulos separado por pastas no arquivo)
- Lista de páginas com separação por capítulos
- Compartilhar imagem [Mangas/Comics]
- Animações nos ícones
- Compartilhamento de marcações entre o dispositivos através do Google Drive
- Compartilhamento de marcações entre o dispositivos através do Firebase
- Funcionalidade de texto para fala utilizando a api do Edge da Microsoft
- Estatisticas de leituras
- Marcadores de texto na leitura de livro.
- Popup para vocabulario e kanji em livros em japonês.
- Exportar vocabularios ao Anki
- Fork (https://github.com/JhonnySalles/BilingualReader/fork)
- Crie sua branch de recurso (
git checkout -b feature/fooBar
) - Faça o commit com suas alterações (
git commit -am 'Add some fooBar'
) - Realize o push de sua branch (
git push origin feature/fooBar
) - Crie um novo Pull Request
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.
Algumas imagens do aplicativo
Biblioteca
MetaData
Vinculo entre arquivos
Leitura
Legenda
Recursos
Livro
Marcações
Estrutura do arquivo recomendada
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.