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

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программа DjVu Imager
« Ответ #30 : 01 Февраля 2010, 10:11:23 »
T-ya
Цитировать
Всё так. Но достаточно очевидно, что 2 первых одинаковых djvu (Encoded и n14) - это  заготовка, а 2 других (тоже одинаковых) djvu (n15 и n16) - это результат работы Имиджера.
Вообще-то ИМХО неочевидно, т.к. в общем случае n15 и n16 могут и не являться "потомками" Encoded и n14 - а "происходить" от других DjVu, полученных в DjVu Small (хотя и очень похожих).
Цитировать
из чего следует, что Имиджер все таки заменил исходный FGbz c информацией о белом цвете кружков.
Это если считать, что Encoded15.out.djvu является результатом вклейки рисунка в Encoded.djvu (не факт).

Я сделал немного иначе: ресэмплировал 0048_25.sep.tif до 600 dpi (в Фотошопе) и вклеил его в Encoded.djvu (при помощи DjVu Imager v1.6). И действительно - белые кружки стали чёрными. То есть, глюк. Буду искать.

monday2000

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

DjVu Imager v1.7  (1,16 МБ)

http://www.djvu-soft.narod.ru/soft/djvu_imager_v1_7.rar

Исходники:  (73 КБ)

http://www.djvu-soft.narod.ru/soft/djvu_imager_v1_7_src.rar

Исправлен баг с неправильной вставкой FGbz-чанка в случае одностраничных DjVu (замеченный 57an и T-ya). Вот пример от 57an, иллюстрирующий проблему (теперь уже исправленную):

http://www.djvu-soft.narod.ru/scan/di_error_1_6.rar (68 КБ)

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программа DjVu Imager
« Ответ #32 : 18 Февраля 2010, 12:51:58 »
Я смог исправить баг с перевёрнутым вверх ногами DjVu после djvumake в DjVu Reader 2.0.0.26, найденный 57an, в соответствии с этим указанием U235:
Цитировать
Обнаружена причина неправильного (перевернутого) отображения файлов собраных djvumake (из DjvuLibre) в Djvu Reader. Дело в том, что согласно спецификации на формат, в конце чанка INFO должен присутствовать флаг, отвечающий за поворот страницы. В при нулевом повороте он должен быть установлен в 1. После  djvumake он установлен в 0, чего не должно быть по спецификации (допустимы варианты : 1,2,5,6).

Описание структуры чанка INFO (как сказал U235) находится тут: http://www.djvu.org/docs/DjVu3Spec.djvu секция "8.3.11 Document Info Chunk: INFO":
Цитировать
Mask to be interpretted as follows:
The first 5 bits are reserved for future implementations.
The last 3 bits specify the image’s rotation. The following 4 patterns are recognized:
1 – 0° (rightside up)
6 – 90° Counter Clockwise
2 – 180° (unside down)
5 – 90° Clockwise
Действительно, djvumake записывал в DjVu-файл флаг ориентации = 0 - а надо было "1".

Для того, чтобы исправить этот баг, оказалось достаточно просто сделать такое исправление:

В файле DjVuInfo.cpp в исходниках DjVuLibre в строке 158 в функции "void DjVuInfo::encode(ByteStream &bs)":

Вместо:

switch (orientation)
{
default: flags=0; break;
case 1: flags=6; break;
case 2: flags=2; break;
case 3: flags=5; break;
}

должно быть:

switch (orientation)
{
default: flags=1; break;
case 1: flags=6; break;
case 2: flags=2; break;
case 3: flags=5; break;
}

Я перекомпилировал исправленный таким образом djvumake - и проблема с DjVu Reader 2.0.0.26 исчезла. На отображение файла в WinDjView исправление никак не повлияло - как показывал правильно, так и показывает.

Я написал письмо Леону Боту. Как он мне ответит - я сразу выложу новую версию DjVu Imager (с исправленным djvumake).
« Последнее редактирование: 18 Февраля 2010, 13:00:10 от monday2000 »

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Программа DjVu Imager
« Ответ #33 : 18 Февраля 2010, 13:20:19 »
Отличные новости! А на зеркальное отображение там никакого флага не предусмотрено?
Реально ли сделать какую-нибудь утилиту, которая бы исправляла без перекодирования существующие djvu-файлы, некорректно отображаемые в Djvu Reader?

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программа DjVu Imager
« Ответ #34 : 18 Февраля 2010, 14:02:14 »
57an
Цитировать
Реально ли сделать какую-нибудь утилиту, которая бы исправляла без перекодирования существующие djvu-файлы, некорректно отображаемые в Djvu Reader?
Совершенно реально. Легко. Всё, что нужно - сделать доп. параметр командной строки djvumake - "угол поворота". Внутри djvumake вызывается функция create_info_chunk - в ней есть строки:

  info.width = w;
  info.height = h;
  info.dpi = dpi;

к ним нужно лишь добавить параметр:

 info.orientation = угол_поворота;

и всё.

Всё это можно оформить как клон djvumake - и им пересобирать DjVu-файлы (меняя угол поворота в процессе пересборки).

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программа DjVu Imager
« Ответ #35 : 19 Февраля 2010, 10:22:16 »
Я сделал новую подверсию:

DjVu Imager v1.8  (1,17 МБ)

http://www.djvu-soft.narod.ru/soft/djvu_imager_v1_8.rar

Исходники:  (73 КБ)

http://www.djvu-soft.narod.ru/soft/djvu_imager_v1_8_src.rar

Единственное изменение - обновлён djvumake (там исправлен баг с поворотом при 0 градусов). Теперь DjVu, полученный после DjVu Imager, отображается корректно в DjVu Reader v2.0.0.26.

P.S. Что-то Леон молчит пока, так что я уж не стал его дожидаться, а решил сделать этот релиз. Я хочу, чтобы он внёс соответствующее исправление в CVS DjVuLibre (чтобы придать официальность исправлению этого бага).

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программа DjVu Imager
« Ответ #36 : 19 Февраля 2010, 18:57:28 »
Наконец-то мне ответил Леон.

Ответ оказался совершенно неожиданным:
Цитировать
Yes but no.
If we do that, we'll break backward compatibility with lots of existing djvu documents with zero in the flags...
I'd rather change the spec.

- L.

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Программа DjVu Imager
« Ответ #37 : 22 Февраля 2010, 14:25:32 »
Попадаются книжки, в принципе сделанные корректно, методом вставки иллюстраций. Однако то ли в СК блюр не имеет достаточного диапазона, то ли автор книги не умеет им пользоваться, но в результате имеем запредельный размер djvu - сто и больше Мбайт. Просится извлечение картинок из background в TIFF, групповое их "доблуривание" (тут уж кто на что горазд - способов мильен) и обратная сборка в djvu... И Djvu Imager для такой цели одно из наиболее логичных GUI-решений. Реально добавить функционал?

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программа DjVu Imager
« Ответ #38 : 22 Февраля 2010, 16:59:28 »
57an
В принципе, думаю, это возможно. Т.е. разбирать на чанки, декодировать чанк заднего фона в обычный графический файл, делать ему размытие - затем собирать в файл назад.

Но я не обещаю, что стану это делать. Просто спрос на такую функциональность ИМХО невысок.

А Вы можете это проделывать через утилиты DjVuLibre - скорее всего, их возможностей хватит.

PS Я подумаю насчёт того, чтобы сделать клон djvumake с возможностью задавать угол поворота. Но сначала разберусь, что там Леон решил насчёт этой темы, а то пока не вполне мне ясно, если делать, то как именно.

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Программа DjVu Imager
« Ответ #39 : 22 Февраля 2010, 19:28:51 »
Извлечь tif-background оказывается можно даже простым WinDjView (а не такой уж он и простой )))).

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программа DjVu Imager
« Ответ #40 : 25 Февраля 2010, 10:11:03 »
57an
Вы могли бы на своей страничке о создании DjVu бесплатным софтом указывать DjVu Solo 3.1 в качестве DjVu-кодировщика. Ведь эта программа является свободно-бесплатной на легальной основе, и она достаточно качественная и удобная в работе. Всё же ИМХО удобнее и качественнее, чем miniDjVu.

DjVu Imager, кстати, тоже рассчитан на работу в паре с DjVu Solo 3.1.

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Программа DjVu Imager
« Ответ #41 : 25 Февраля 2010, 21:31:16 »
При вставке 300dpi-шных изображений в 600dpiшную текстовую часть результат получается со странными значениями dpi.
Пример
« Последнее редактирование: 25 Февраля 2010, 23:32:44 от 57an »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программа DjVu Imager
« Ответ #42 : 26 Февраля 2010, 09:10:17 »
57an
Я точно не знаю, для чего в DjVu-файлах указывается DPI, и какое оно должно быть в каких случаях.

Вообще всегда смотрите в WinDjView проблемные страницы DjVu-файла по правой кнопке мыши пункт в контекстном меню "Информация о странице". А именно, смотрите, какие там чанки присутствуют.

В Вашем примере всё довольно просто: обрабатываемая страница содержит только задний фон (пустой белый, потому он тут вообще не нужен) и всё. Никакого текста, да ещё на 300 dpi, там нет.

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Программа DjVu Imager
« Ответ #43 : 02 Марта 2010, 07:32:33 »
Dpi указывается для возможности просмотра на мониторе и распечатки книги в оригинальном размере. Оригинальный размер отображается в правом нижнем углу WinDjView.

Проблемы с djvu в моем архиве связаны с тем, что DjvuImager по умолчанию задает sep-файлам разрешение 100dpi.
Есть ли возможность автоматически анализировать реальное разрешение обрабатываемых DjvuImager sep-файлов? Либо хотя бы поставьте по умолчанию 300dpi.

По Djvu Small вопрос. Можно ли сделать так, чтобы при кодировании в режиме Фото -> DjVu программа не ругалась на настройки в части Документ -> DjVu, в частности, на размер словаря?

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программа DjVu Imager
« Ответ #44 : 02 Марта 2010, 09:14:02 »
57an
Я подумаю, как именно это сделать (в отношении обоих вопросов).
По DPI: DPI выставить не проблема какое угодно - вопрос в том, какое именно.