Como remover a camada de fundo do arquivo DjVu

1

Eu baixei alguns arquivos do Internet Archive. Eles vêm em diferentes formatos de arquivo e na maioria das vezes eu uso PDF. No entanto, às vezes, as verificações são salvas em cores em vez de em preto & branco. Isso dificulta (ou impossibilita) ler em um leitor de livros eletrônicos dedicado. Nesse caso eu baixei os arquivos DjVu, como no PC você pode selecionar qual camada (cor, bw, primeiro plano, fundo) gostaria de ver.

Selecionando preto & branco dá excelentes resultados. No entanto, o leitor de livros eletrônicos não tem essa opção.

A questão é, como eu posso remover ou extrair uma camada do arquivo DjVu e salvar apenas essa camada?

Até agora eu tentei as duas abordagens a seguir:

  1. Selecione preto & branco no visualizador do DjVu no PC e imprima em um arquivo PostScript. Seguido por uma conversão de ps2pdf . Isso funciona, mas gera um arquivo PDF bastante grande. Claro, posso novamente enviá-lo para any2DjVu, mas parece que há muito trabalho manual para cada arquivo.

  2. Eu tentei o recurso de anotação compartilhada e disse "mode bw". Isso funciona no PC como desejado, mas é ignorado no leitor de livros eletrônicos, pois as outras camadas ainda estão presentes.

por Jon 11.01.2011 / 15:18

3 respostas

1
  1. Descompactar arquivo djvu: djvuextract g.djvu BG44=g.c44 ; %código%
  2. Agrupe novamente: djvuextract t.djvu Sjbz=t.cjb2

(os comandos são ad-hoc, eu não os verifiquei)

    
por 11.01.2011 / 15:24
0

O programa que você quer é djvups. Assim como o nome sugere, ele converte do DjVu para o PostScript, com o bônus de permitir que você selecione quais camadas reter (todas, primeiro plano, plano de fundo ou máscara de primeiro plano). Tente isto:

djvups -mode=foreground -gray input.djvu output.ps

ou, para produzir apenas a máscara de primeiro plano:

djvups -mode=black input.djvu output.ps

Após esta conversão, o ps2pdf deve obter o que você deseja.

    
por 18.12.2012 / 10:13
0

Existe um método que não envolve insuflar o arquivo. Vou assumir um único arquivo de página para simplificar. Talvez o método também possa ser adaptado para várias páginas. Primeiro, liste os fragmentos no seu arquivo usando djvudump . Uma saída típica ficará assim:

FORM:DJVU [72422] 
  INFO [10]         DjVu 2443x3471, v24, 300 dpi, gamma=2.2
  Sjbz [47781]      JB2 bilevel data
  FG44 [3393]       IW4 data #1, 100 slices, v1.2 (color), 408x579
  BG44 [2611]       IW4 data #1, 74 slices, v1.2 (color), 815x1157
  BG44 [3307]       IW4 data #2, 10 slices
  BG44 [1208]       IW4 data #3, 6 slices
  BG44 [8543]       IW4 data #4, 7 slices

Você pode extrair os blocos que não são de fundo.

djvuextract input.djvu Sjbz=tmp1
djvuextract input.djvu FG44=tmp2

Quando você cria um novo arquivo sem dar nenhum plano de fundo, ele assumirá como padrão branco. Os números passados para INFO são as dimensões e o DPI da djvudump output.

djvumake output.djvu INFO=2443,3471,300 Sjbz=tmp1 FG44=tmp2

Alguns scripts provavelmente são necessários para tornar isso útil na prática.

    
por 22.07.2013 / 17:43