Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - Xen Xheng

Страницы: [1]
1
DjVu / Re: Программа DjVu Small Mod
« : 19 јРав 2014, 23:44:30 »
Спасибо за пояснения.

2
DjVu / Re: Программа DjVu Small Mod
« : 19 јРав 2014, 02:35:26 »
Прочитал справку к DjVu Small Mod v0.6.6.
Возникло несколько вопросов по работе с программой:

1. Профиль Lowcolor encoding не дает выбор 600dpi.
Каков по задумке авторов алгоритм работы с обработанными малоцветными сканами (tif содержащий битовый текст и малоцветную графику)? Как малоцветные страницы встраиваются в черно-белую книгу? Чтобы она оказалась все-таки 600dpi, как и планировалось.

2. Соглашение об именах слоев меня несколько напрягает. Нельзя ли предусмотреть, что имена слоев одинаковы, но находятся, скажем, во вложенных папках, например
Слой текста  [<name>.<ext>       ]
Слой фона    [..\bg\<name>.<ext> ]
Цветомаска   [..\cm\<name>.<ext> ]

До сих пор, не зная о малоцветном кодировании, я пользовался DjVu Imager. Просто задавал ему каталог с цветным содержимым. Имена файлов абсолютно те же, что и для текстового слоя. Это удобно, если разделять вручную в фотошопе и сохранять послойно с теми же именами в разные каталоги.

3. Впрочем, если можно обойтись вообще без соглашений имен для малоцветного кодирования - это даже еще лучше. Все что мне нужно - это передний слой 600 dpi с поддержкой словаря. Фотослой я и в DjVu Imager подклею.

4. Небольшой баг. При перетаскивании djvu на программу (если перед этим кодировали) галочка (точечка) не перескакивает на текущий режим работы - "Декодировать DjVu", и наоборот (как это было в оригинальной DjVu Small).

И, да, программа действительно очень полезная.
Малоцветные djvu получаются по-настоящему компактными и качественными.

P.S. Согласен с monday2000
Цитировать
ИМХО путь исследования профилей DjVu - бесперспективен. Т.е. попытки заставить автоматическую сегментацию работать "как положено" мне представляются нереальными - для массового использования.
Лучше развивать направление DjVu Imager, а DjVu Small понизить исключительно до роли инструмента кодирования передних субсканов - и всё.

3
Именно этого мне так не хватало.
Спасибо большое за программу.

4
Здравствуйте, monday2000.

Методом подклейки фото-изображений пользуюсь уже лет пять. Спасибо вам за подробные описания.

Недавно мне попался на глаза файл djvu со страницей, в которой чистые цвета соприкасались без jpg-артефактов. Это меня заставило задуматься, может и я так смогу? Запрос google "JB foreground colors 9 colors" привел на вашу страницу с описанием кодирования малоцветных djvu.

1. Метод manfred с помощью tifftopnm
За день наконец разобрался в работе методом manfred. Я пытался скармливать csepdjvu пустой background.tif (белый цвет, 600dpi). На что он отвечал ошибкой GPixmap.unk_PPM "неизвестный PPM формат файла". Почитав мануал к csepdjvu понял, что background.tif не нужен, если в нем только белое поле.

Покумекал немного с циклами в командных bat-файлах и передачей папки как параметра. В итоге пришел к следующей модификации метода manfred'а. Создаем в папке с файлами manfred такой batch.bat:
for %%I in ("%~1\*.tif") do tifftopnm "%~1\%%~nxI" | pnmtodjvurle > "%~1\%%~nI.rle"
for %%I in ("%~1\Новая папка\*.tif") do tifftopnm "%~1\Новая папка\%%~nxI" > "%~1\%%~nI.ppm"
for %%I in ("%~1\*.rle") do copy /b "%~1\%%~nxI"+"%~1\%%~nI.ppm" "%~1\%%~nI.sep"
for %%I in ("%~1\*.sep") do csepdjvu -d 600 -q 100,150,200,250 "%~1\%%~nxI" "%~1\%%~nI.djvu"
del "%~1\*.rle" "%~1\*.ppm" "%~1\*.sep"
pause

Это похоже на очень сильное колдунство, но работает оно так.
Важно: Вытаскиваем на рабочий стол ярлык на batch.bat из папки manfred.
1. Создаем на рабочем столе папку "Новая папка".
2. В нее складываем файлы с CLA содержимым. Называем их традиционно: 0001.tif, 0002.tif и т.д.
3. Создаем здесь же вложенную папку "Новая папка" и складываем в нее файлы с Photo содержимым (я уменьшил разрешение до 300dpi). Называем аналогично: 0001.tif, 0002.tif и т.д.
Если, например, для 2-й страницы нет фото-вклейки, то 0002.tif в этой вложенной папке не создаем.
4. Перетягиваем мышкой папку "Новая папка" (созданную в пункте 1 на рабочем столе) на ярлык batch.bat.
5. Ждем. Вначале создаются все rle. Затем ppm. Потом rle+ppm дают sep. Наконец sep кодируются в djvu. Временные файлы убираются.
6. Все. В папке "Новая папка" находятся отдельные страницы djvu: 0001.djvu, 0002.djvu и т.д.
7. Осталось в DjVu Small закодировать черно-белые страницы, открыть Editor 6.0 и в полученный djvu-файл вставить малоцветные страницы.

Отмечу, что я выставил такие параметры
csepdjvu -d 600 -q 100,150,200,250
Без них получается 300 dpi и фото-вклейки с качеством по умолчанию -q 72,83,93,103
Захотелось качество фото сделать получше.
-q 100,150,200,250 - это первая попытка, и то что получилось меня устроило.

Проблема. После фотошопа tifftopnm дает предупреждение
"unknown field with tag 34665 (0x8769) encountered",
но продолжает работать, и djvu получаются.
Пересохранение в IrfanView решает проблему.

2. Второй подход к снаряду - замена tifftopnm на IrfanView.
Также пробовал создавать pbm через IrfanView, но получил только черно-белый файл. После чего использование IrfanView для этих целей отбросил. И вот подумал, а зачем pbm (Portable Bitmap) - это же битмап (маска) - одноцветная по определению. Надо попробовать ppm (Portable Pixelmap) - цветной формат.

Итак, помещаем файл i_view32.exe в папку manfred и создаем в ней ibatch.bat:
for %%I in ("%~1\*.tif") do start /w i_view32 "%~1\%%~nxI" /convert="%~1\%%~nI.ppm"
for %%I in ("%~1\*.tif") do pnmtodjvurle < "%~1\%%~nI.ppm" > "%~1\%%~nI.rle"
del "%~1\*.ppm"
for %%I in ("%~1\Новая папка\*.tif") do start /w i_view32 "%~1\Новая папка\%%~nxI" /convert="%~1\%~nI.ppm"
for %%I in ("%~1\*.rle") do copy /b "%~1\%%~nxI"+"%~1\%%~nI.ppm" "%~1\%%~nI.sep"
for %%I in ("%~1\*.sep") do csepdjvu -d 600 -q 100,150,200,250 "%~1\%%~nxI" "%~1\%%~nI.djvu"
del "%~1\*.rle" "%~1\*.ppm" "%~1\*.sep"
pause

Все работает. Фотошоп уже не страшен.

Метод позволяет кодировать фото-фон на всю страницу.

Проблема. Чтобы фон подклеился, его размер в уменьшенном разрешении должен соответствовать переднему слою. Я так понял, что размер переднего слоя в пикселах должен быть кратен нацело фону.

3. Один малоцветный djvu на выходе. Фотослой через DjVu Imager
set name=
for %%I in ("%~1\*.sep") do set name=!name! "%~1\%%~nxI"
csepdjvu -d 600 -q 100,150,200,250 %name% "%~1\1.djvu"
Этот код позволяет получить на выходе один многостраничный малоцветный djvu файл.

Проблема. Если подредактировать какой-либо файл в фотошопе его дата изменится, и в списке файлов для цикла он пойдет самым последним (это если FAT32, а  вот NTFS сама сортирует по алфавиту), нарушая последовательность страниц. Можно конечно прогнать еще раз пакетно через IrfanView. Но это полумеры.

Решил проблему сортировки имен файлов.
Подклейку фото-слоя можно осуществлять стандартным способом через Djvu Imager.

Итак, командный файл, который путем перетаскивания папки на его ярлык преобразует папку с малоцветными tif файлами в малоцветный многостраничный 0001.djvu на рабочем столе пользователя.
В этой же папке можно создать вложенную папку с tif-файлами фото-слоя. Папка с фото-слоем никак не влияет на процесс обработки малоцветного файла (она может быть, а может и не быть).
Setlocal EnableDelayedExpansion
for %%I in ("%~1\*.tif") do (
start /w i_view32 "%%I" /convert="%~1\%%~nI.ppm"
pnmtodjvurle < "%~1\%%~nI.ppm" > "%~1\%%~nI.sep"
del "%~1\%%~nI.ppm"
)
for %%I in ("%~1\*.sep") do echo %%I >> "%~1\files.txt"
set name=
for /F "usebackq delims=" %%I in (`sort "%~1\files.txt"`) do set name=!name! "%%I"
csepdjvu -d 600 %name% "%USERPROFILE%\Рабочий стол\0001.djvu"
del "%~1\*.sep" "%~1\files.txt"
pause
"%USERPROFILE%\Рабочий стол\0001.djvu"
После создания малоцветного djvu запускаем Djvu Imager (можно параллельно).
Направляем его на папку с фотослоем.
Выбираем нужный делитель и качество.
Запускаем процесс. Ждем.
Вставляем в малоцветный djvu.

Все. Радуемся результату [0.1Mb]
http://rusfolder.com/40149470

Модифицированный пакет manfred [0.6Mb]
http://rusfolder.com/40149468

Папка с исходными tif-файлами [15Mb]
http://rusfolder.com/40149469

Страницы: [1]