Автор Тема: Программа DjVu Imager  (Прочитано 122522 раз)

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программа DjVu Imager
« Ответ #75 : 23 јРав 2010, 21:04:06 »
57an
Посмотрел я пример http://www.onlinedisk.ru/file/386429/ . Кстати, вот я его перезалил:

http://ifolder.ru/16946684  (19,04 МБ)

Забавный пример.  :) Кто бы мог подумать, что внутренние имена многостраничного DjVu-файла могут иметь вид:
Цитировать
0001_Лосев А.Ф. Избранные труды по имяславию и корпусу сочинений Дионисия Ареопагита.2009_Страница_001.djvu

0002_Лосев А.Ф. Избранные труды по имяславию и корпусу сочинений Дионисия Ареопагита.2009_Страница_002.djvu

0225_Лосев А.Ф. Избранные труды по имяславию и корпусу сочинений Дионисия Ареопагита.2009_Страница_114.djvu
Тут уж самая разумная программа ИМХО споткнётся.  ;D

В общем, DjVu Imager в том виде, как он есть сейчас, объективно не способен "переварить" совершенно любые имена при своей работе - поскольку является полностью автоматическим решением в части определения соответствия "что вклеивать - куда вклеивать". Такой полный автоматизм подразумевает соответствие системы именования внутренних имён DjVu определённым признакам.

Ваш пример подтолкнул меня к мысли о том, что можно будет попробовать ... переименовывать имена внутренних DjVu-страниц в многостраничном DjVu-файле - в какой-нибудь нормальный вид. Я предпочитаю "нотацию файнридера" - 0001, 0002, 0003, .... .

Пожалуй, только так можно будет прогарантировать всегда безошибочное определение соответствий вклейки.

И тогда уж такое переименование будет запускаться всегда автоматом в DjVu Imager непосредственно перед вклейкой.

Правда, я пока точно не знаю - как именно можно сделать такое переименование. Но интуиция подсказывает мне, что это возможно.
Цитировать
Ну зачем нам нужны пляшущие размеры страниц?
Согласен. Я просто ранее не обратил на это внимание. Ведь DjVu Imager - это во многом экспериментальная программа, да ещё и не имеющая аналогов (так что ориентироваться было не на что). Я вообще никогда не задумывался и не знал - зачем DjVu-файлу иметь DPI. Я и не знал, что WinDjView, оказывается, вон как реагирует на разнобойные DPI.

Обе указанные проблемы не решить быстро - так что я не обещаю мгновенного их исправления. Решение этих 2 вопросов займёт определённое время. Тут надо будет подумать, что к чему.
« Последнее редактирование: 23 јРав 2010, 21:26:52 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программа DjVu Imager
« Ответ #76 : 30 јРав 2010, 16:11:50 »
Новая версия:

DjVu Imager v1.10

http://www.djvu-soft.narod.ru/soft/djvu_imager_v1_10.rar  (1,17 МБ)

Исходники:

http://www.djvu-soft.narod.ru/soft/djvu_imager_v1_10_src.rar  (74 КБ)

Исправлен глюк: когда иллюстрация вклеивается на пустую страницу (содержащую один лишь чанк INFO), теперь ей (иллюстрации) назначается то же DPI, что имеется в этом чанке INFO. Это исправление глюка http://www.djvu-scan.ru/forum/index.php?topic=14.msg317#msg317 .

Как побочный эффект, я сделал консольную утилиту для изменения DPI в DjVu-файле.

Называется "djvudpi":

http://www.djvu-soft.narod.ru/soft/djvudpi.rar  (17 КБ)
(исходный код внутри)

Синтаксис:
Цитировать
djvudpi djvufile <n>
djvufile - путь к DjVu-файлу (bundled; 1 или многостраничный)
<n> - новое значение DPI, которое проставится в чанк INFO каждой странице указанного DjVu-файла.

Утилита сделана как модификация http://www.djvu.org/files/DjVuVersion.zip .
Исходный код этой утилиты использован в этой версии DjVu Imager (для назначения DPI вклеиваемой DjVu-иллюстрации).

Также этой утилитой можно подправить любой DjVu-файл, где есть "разнобойные" (по DPI) страницы.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программа DjVu Imager
« Ответ #77 : 31 јРав 2010, 18:46:11 »
Новая версия:

DjVu Imager v2.0

http://www.djvu-soft.narod.ru/soft/djvu_imager_v2_0.rar  (1,16 МБ)

Исходники:

http://www.djvu-soft.narod.ru/soft/djvu_imager_v2_0_src.rar  (76 КБ)

Что нового:

- Добавлен фильтр имён загружаемых файлов-иллюстраций с именем "Нет" (None).
В результате теперь допускается загружать файлы-иллюстрации без суффикса ".sep".

- Окна открытия папки ввода и папки вывода теперь запоминают последнюю открытую папку (каждая свою) - с неё начинается открытие в следующий раз.

- Изменён механизм поиска страницы DjVu-файла, куда наклеивается иллюстрация: теперь имя файла вклеиваемой иллюстрации преобразуется в число, и затем ищется страница DjVu-файла с таким же номером - туда и наклеивается иллюстрация. А раньше поиск страницы DjVu-файла, куда наклеивается иллюстрация, осуществлялся по её имени, а не по номеру.

Новый подход обеспечивает 100% гарантию правильности совпадения "вклеиваемая иллюстрация - страница, куда она наклеивается".

Единственное ограничение: загруженные в программу графические файлы (наклеиваемые иллюстрации) должны соответствовать некоторым правилам:

1. Содержать цифры в своём имени.

2. При преобразовании "имя файла - число" давать уникальный номер (среди всех прочих загруженных файлов).

3. Допускается наличие любых не-цифровых символов в именах загружаемых файлов-иллюстраций (они просто игнорируются при преобразовании "имя файла - число", заменяясь на пробел, и конвертируясь в число в итоге).

Рекомендуемые системы имён загружаемых файлов-иллюстраций:

0001.tif, 0002.tif, ...., 0010.tif, ...., 0100.tif, ...
или
1.tif, 2.tif, ...., 10.tif, ...., 100.tif, ...
или
aa0001.tif, 0002bb.tif, ...., ddd0010.tif, ...., dd0100aa.tif, ... (при фильтре имён "Нет" допускаются любые суффиксы-префиксы).

Примеры запретных схем именования:

aa0001.tif, bb0001.tif, ...., cc0001.tif, ....,nn0001.tif, ... (сконвертируются в не-уникальные номера).

0001aa1.tif, 0001bb1.tif, ...., 1cc0001.tif, ...., 1000nn1.tif, ... (сконвертируются в не-уникальные номера, т.к. не-цифровые символы заменятся на пробелы перед непосредственной конверсией в число).

Новый механизм поиска места вклейки исправляет баг http://www.djvu-scan.ru/forum/index.php?topic=14.msg318#msg318 .
« Последнее редактирование: 31 јРав 2010, 18:47:44 от monday2000 »

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Программа DjVu Imager
« Ответ #78 : 31 јРав 2010, 20:09:57 »
Нормально ли будут обрабатываться файлы в формате вывода СТ
0023_0024.tif
0024_0025.tif
?

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программа DjVu Imager
« Ответ #79 : 31 јРав 2010, 22:48:37 »
57an
Цитировать
Нормально ли будут обрабатываться файлы в формате вывода СТ
Нет, такие не будут. Такие будут преобразованы в номера страниц:
230024
240025
естественно, в DjVu-файле не окажется страниц под такими номерами.

Надо бы отсечь либо первую, либо вторую половину (до и после подчёркивания). Но какую? В чём смысл таких двойных номеров-имён файлов?

Давайте свои предложения.

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Программа DjVu Imager
« Ответ #80 : 31 јРав 2010, 23:10:04 »
Какие тут предложения? Я уже боюсь этой новой версии :).

Слишком уж она умная по отношению к именам файлов )) Мне гораздо проще было держать в голове мантру "используй короткие имена файлов без русских букв", чем думать о том, что если я назову обложку ob001.tif, то это вызовет или не вызовет конфликт с первой страницей p001.tif... В общем программа становится гораздо сложнее палки :)

В СТ слева от подчеркушки порядковый номер страницы в проекте. Справа - имя файла на входе СТ (в том числе и разворот страниц). Идентификатор, соответственно, слева. Подчеркушек может быть несколько.


monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программа DjVu Imager
« Ответ #81 : 31 јРав 2010, 23:11:16 »
Ну всё, посмотрел я в СТ. В общем, в таких именах файлов из СТ значащей частью для DjVu Imager является вторая - т.е. после подчёркивания. Очень жаль - лучше бы наборот - первая. Так было бы проще - тогда бы я всегда отбрасывал всё после первого не-цифрового символа.

Сделаю, в общем, специальную обработку этого случая. DjVu Imager будет автоматически определять формат имён СТ и правильно вычислять номер соотв. ему DjVu-страницы по следующим признакам:

- длина имени - 9 символов
- расширение - tiff
- пятый символ - подчёркивание
- до и после подчёркивания встречаются только цифры

Вот надо этому СТ и тут было извратиться - ну почему бы просто не давать обычные имена файлов - 0001, 0002, 0003, ....? ВСЕ программы для работы с графикой так поступают - одному, видите ли, СТ, надо было выежнуться по-особому.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программа DjVu Imager
« Ответ #82 : 31 јРав 2010, 23:22:59 »
57an
Цитировать
В общем программа становится гораздо сложнее палки
Это вынужденное зло - ведь мы пока не властны переименовать внутренние страницы DjVu-файлов (а иначе нет гарантии, что программа будет верно находить страницы, куда вклеивать - поскольку она не просто искала полное совпадение имён - а вхождение одного имени в другое, и то, всё это зависело ещё и чем кодировали DjVu-файл - в общем, гемор был страшенный). Т.е. все предыдущие версии не гарантировали правильности работы на 100% - эта первая, которая даёт такую гарантию.
Цитировать
чем думать о том, что если я назову обложку ob001.tif, то это вызовет или не вызовет конфликт с первой страницей p001.tif
Да, теперь на внутренние имена страниц DjVu-файла вообще не следует смотреть. Теперь важен номер страницы - а не имя.
Но слава богу, WinDjView показывает и то, и другое - так что тут проблемы я не вижу. Просто это пока чуть непривычно. Вот какой номер страницы видите в WinDjView - такое имя файла и давайте вклеиваемой иллюстрации (плюс расширение тиф или какое там). Разве не просто?
Цитировать
Подчеркушек может быть несколько.
Это уже хуже. Гораздо хуже. А сколько же их может быть?
« Последнее редактирование: 31 јРав 2010, 23:25:49 от monday2000 »

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Программа DjVu Imager
« Ответ #83 : 31 јРав 2010, 23:27:35 »
Цитировать
А сколько же их может быть?
Да сколько угодно (например дочерний проект над папкой out). Суть в том, что уникальны будут только цифры до первой слева подчеркушки. Никаких 9 символов там нет. Только 4 цифры-подчеркушка-произвольный остаток.

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Программа DjVu Imager
« Ответ #84 : 31 јРав 2010, 23:30:09 »
А что,
"0001_Лосев А.Ф. Избранные труды по имяславию и корпусу сочинений Дионисия Ареопагита.2009_Страница_001.djvu"
это принципиально сложное имя файла для Djvu Libre? Я так понял, что как минимум для djvused это не проблема уже..

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программа DjVu Imager
« Ответ #85 : 31 јРав 2010, 23:38:20 »
57an
Цитировать
это принципиально сложное имя файла для Djvu Libre
Дело в том, что разные DjVu-кодировщики по-разному назначают внутренние имена страниц DjVu-файла. Это только один documenttodjvu отбрасывает расширение "tif" и взамен навешивает "djvu". DjVu Solo дополнительно к этому навешивает впереди приставки "0001_", "0002_", и т.д.

DEE 7 вообще непонятно что использует (см. статью Rainhaart http://www.djvu-scan.ru/forum/index.php?topic=25.0 ).
Цитировать
Если смотреть структуру DjVu-файла, сгенерированного седьмой версией, в окошке “Document Properties”, то видно, что вместо прежнего набора суб-файлов (cуб-файлом здесь называется отдельный модуль DjVu-файла (в терминологии формата это будет “chunk”), включающий в себя или одну из страниц, или словарь сжатия) *.djvu, пронумерованных по порядку страниц, плюс вклинивающихся между ними суб-файлов *.djbz (словари сжатия), он состоит из файлов *.iff, по числу сжимаемых изображений. При этом, вместо прежней порядковой нумерации, каждый iff-файл обозначается сложной комбинацией букв и цифр.

Например, 1248b5c6-3478-4622-8a64-8945830e5091.iff, d8dc0538-597b-46ac-8067-53833231897c.iff или 34533372-4e2d-4171-8c23-d12dec28106d.iff.

Поэтому соответствие "имя вклеиваемой иллюстрации - имя DjVu-страницы, куда вклеивать" - вещь абсолютно ненадёжная, на неё нельзя никак опираться. Только номер DjVu-страницы - вот единственная действительно надёжная опора.
« Последнее редактирование: 31 јРав 2010, 23:42:23 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программа DjVu Imager
« Ответ #86 : 31 јРав 2010, 23:45:55 »
57an
Цитировать
Да сколько угодно (например дочерний проект над папкой out). Суть в том, что уникальны будут только цифры до первой слева подчеркушки.
Не понял. Имеется в виду ситуация,  когда файлы, уже выведенные из СТ, ещё раз прогоняют через СТ и выводят из него?

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программа DjVu Imager
« Ответ #87 : 31 јРав 2010, 23:53:15 »
Если "да" (а, скорее всего, именно так), то я могу предложить следующее: добавить в DjVu Imager ещё один флажок в фильтр имён файлов - "Scan Tailor filenames".

И тогда у всех входящих файлов-иллюстраций брать только кусочек после последнего подчёркивания, и конвертировать его в число (соответствующего номеру DjVu-страницы, куда вклеивать).

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Программа DjVu Imager
« Ответ #88 : 01 °ЯаХЫм 2010, 00:00:33 »
Ясно, а тупо сортировать по алфавиту не хотите из-за вероятности получить на входе Imagera 1,2,.,9,10, ... без выравнивающих нулей в начале числа..
Может, правда, сортировать, и не мучаться? А для любителей невыровненных нулями чисел простенькую инструкцию, как добавлять нолики..
Вот выход СТ отлично подходит именно под сортировку ..

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Программа DjVu Imager
« Ответ #89 : 01 °ЯаХЫм 2010, 00:12:50 »
Вспомнил, сортировка не прокатит из-за возможности пропуска страниц...