Автор Тема: Как узнать технические характеристики *.djvu файла?  (Прочитано 21531 раз)

один

  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Друзья! Конечная цель акая: разбить *.djvu файл (A) на файлы-изображения, а потом из них слепить ТАКОЙ ЖЕ файл *.djvu (B) (если B будет отличаться от A в меньшую сторону за счёт удаления каких-нибудь выравнивающих (не влияющих т. е. на качество) байтов, я не обижусь. Но я должен знать в этом случае, что именно такие байты и отсутствуют, а пока приходится ориентироваться на равенство размером A и B)

Качество, понятно, должно быть один в один. Для разбиения-склеивания пользуюсь программой DjVu Small v0.4.4 и всякий раз файл B отличается от файла A размером, что неприемлемо по причине указанной выше.

Как узнать технические характеристики файла A? Например, при склеивании в вышеуказанной программой используются опции разные, например H-100dpi-up; тычу наугад в них. А если бы я знал, что изначально у файла A столько-то dpi (например, 200), я бы писал осмысленно H-200dpi-up и в консоли потом бы склеивал файла B или сделал бы для его изготовления дополнительный профиль. Спасибо, кто откликнется.

« Последнее редактирование: 10 ґХЪРСам 2015, 12:19:43 от один »

textsharik

  • Постоялец
  • ***
  • Сообщений: 138
    • Просмотр профиля
    • E-mail
Как узнать технические характеристики файла A?
Узнать профиль сжатия невозможно. Это считается ненужной информацией, которую никто не сохраняет.

Некоторые (единичные) параметры показываются программами для просмотра.
Например, в WinDjView:
- просмотр информации об архиве: меню File -> "Document Properties" (Показывает количество страниц словаря).
- просмотр информации о странице: правый клик на странице -> "Page Information" (Можно узнать DPI, степень размытия и качество фона)
Но я совсем не уверен, что это то, что Вам нужно.

Конечная цель такая: разбить *.djvu файл (A) на файлы-изображения, а потом из них слепить ТАКОЙ ЖЕ файл *.djvu (B)
Не понятно, зачем нужно делать такой же файл, если уже есть оригинал?
Если цель - поменять порядок страниц - то вместо перекодирования следует использовать DjVu-редактор (Например Document Express DjVu Editor).
DjVu Small v0.4.4 - это программа для кодирования/декодирования. Она не умеет делать разбиение/склеивание.

один

  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Не понятно, зачем нужно делать такой же файл, если уже есть оригинал?
Если цель - поменять порядок страниц - то вместо перекодирования следует использовать DjVu-редактор (Например Document Express DjVu Editor).
DjVu Small v0.4.4 - это программа для кодирования/декодирования. Она не умеет делать разбиение/склеивание.
Мне нужно сделать шрифт более жирным. После того, как я успешно разбиваю *.djvu файл на отдельные *.jpg страницы (DjVu Small v0.4.4, кстати), я на каждой странице ужирняю шрифт. После этого мне мне их необходимо снова собрать в *.djvu файл (шрифт уже будет более жирным, ибо я его ужирнил). А всё остальное должно остаться тем же самым.

textsharik

  • Постоялец
  • ***
  • Сообщений: 138
    • Просмотр профиля
    • E-mail
(шрифт уже будет более жирным, ибо я его ужирнил). А всё остальное должно остаться тем же самым.
Всё остальное чисто технически не может остаться тем же самым. Профиль подбирается под конкретный шрифт. Если шрифт изменился - надо менять и всё остальное.

Единственное, что имеет смысл сохранять в неизменном виде - это иллюстрации. Иллюстрации, в принципе, возможно перенести из старого файла в новый без потерь. Но как это сделать практически - надо думать. Вам это нужно?

P.S. Кстати, не рекомендую использовать jpg в качестве промежуточного формата. jpg предназначен для сжатия фотографий, при сжатии текста он даёт артефакты.

один

  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Если шрифт изменился - надо менять и всё остальное.
Я не понимаю зачем, но всё же- каждую чёрную точку изображения я сдвигаю влево на один пиксель. Потом каждую чёрную точку получившегося изображения изображения сдвигаю вверх на один пиксель. То есть вместо каждого чёрно пикселя становится четыре чёрных пикселя. Что тут нужно ещё поменять?

N.M.E.

  • Пользователь
  • **
  • Сообщений: 87
    • Просмотр профиля
для начала нужно понять, что за файл - есть ли фоновый слой, цветная маска, текст, аннотации, букмарки - нужно ли это оставлять в новой книге?
если весь текст находится в маске (foreground) и также есть фоновая графика (background), то нужно разделить графику на фон и маску (например, с помощью DjVuToy - вкладка FileInfo -> открываем файл, вводим диапазон страниц, жмем Export, который выше и правее -> получим кучу одностраничных djvu-файлов с суффиксами _BG44 и _Sjbz)
далее файлы _Sjbz переводим в графику, но только не в jpeg - лучше в bmp или tif..
чтоб не возиться с каждым файлом отдельно, рекомендую одностраничные файлы _Sjbz собрать в многостраничную книгу (можно тем же DjVuToy -> переместить нужные файлы в отдельную папку, на вкладке Merger выбрать эту папку и сохранить полученную книгу).. а затем эту книгу экспортировать в графические файлы..
после проведенных манипуляций с графикой создаем из нее новый djvu и вклеиваем туда старые _BG44 (кажется djvumake это может делать).. агрессивность кодирования - в зависимости от исходной графики, нужно имхо попробовать несколько вариантов и выбрать приемлемый для себя..
в итоге - картинки остались теми же, текст стал новым..
если в исходном файле были дополнительные чанки (текст, анно и т.п.), все это можно утилитами DjVuLibre перенести в новый файл..
в общем, чтобы понять, что конкретно надо делать, нужно на исходный материал посмотреть..

textsharik

  • Постоялец
  • ***
  • Сообщений: 138
    • Просмотр профиля
    • E-mail
Я не понимаю зачем, но всё же- каждую чёрную точку изображения я сдвигаю влево на один пиксель. Потом каждую чёрную точку получившегося изображения изображения сдвигаю вверх на один пиксель. То есть вместо каждого чёрного пикселя становится четыре чёрных пикселя. Что тут нужно ещё поменять?
Агрессивность сжатия текста задаётся так, чтобы:
1) не пропадали точки (например, точки над "ё").
2) не возникала "проблема инь" на мелких буквах.

Если текст стал жирнее - то:
1) Точки над "ё" станут больше, и можно будет использовать более агрессивный профиль.
2) Линии мелких букв могут начать сливаться, мелкая "и" станет более похожей на "н" => потребуется менеее агрессивный профиль.
То есть, ужирнение шрифта должно приводить к пересмотру профиля в ту или иную сторону, в зависимости от особенностей текста.

P.S. Алгоритм ужирнения текста (из каждого пикселя - четыре) неправильный. Есть более качественные алгоритмы, учитывающие контур букв. (Например в Лептонике).

один

  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Да конечно, что там говорить, алгорим крайне примитивный. Но Лептоника писана вилами на воде и пущена вверх по течению, а мой способ здесь и он рабочий и любой может меня спросить как его применить. Для заценения прилагается два *.djvu до ужирнения и после. Глаз радуется на жирный шрифт. МОЙ глаз радуется.

Справедливости ради- в документе на 745 страниц после ужирнения моим способом и после распознания текста ABBEReader добавилось с десяток ошибок "проверьте язык распознавания". И все как одна связан с тем, что ADBBEReader почему-то перевернул их на 180 градусов, то есть все как одну. Пришлось выделять в этих страницах блоки и распознавать текст в блоках, тогда страницы не переворачивались. Галки "не переворачивать страницы при распознании" в ABBEReader нет. (что минус для ABBYReader, а не для меня. А может, я искал плохо)

Если бы был способ преобразовать чёрно-белое изображение в ноли и единицы (и обратно, естессно; единица- чёрный пиксель, а ноль- белый), можно было бы пободаться в алгоритме ужирнения шрифта с кем угодно. Правда, мне сейчас некогда.

Тут *.djvu файлы
http://rghost.ru/6cQMLCCQg

Цитировать
...Собсно, если бы я знал, что сейчас знаю, то и вопроса бы не возникло. Теперь я делаю так- тычу на какой-нибудь странице *.djvu файла и смотрю какое-то там dpi. Так, это и есть характеристика. Предполагаю (а что делать-то?), что все страницы имеют такое dpi. Сборку после ужирнения  в DjVu Small осуществляю, с профилем Scanned (300 dpi) (не 100, не 200, не 400, а 300- в этом и был вопрос темы.)

Ну вот как-то так.
N.M.E. не сразу заметил сообщение, потому не отреагировал, прошу простить.

...И да, что с названиями месяцев на форуме?
« Последнее редактирование: 12 ґХЪРСам 2015, 12:05:00 от один »

N.M.E.

  • Пользователь
  • **
  • Сообщений: 87
    • Просмотр профиля
Для заценения прилагается два *.djvu до ужирнения и после. Глаз радуется на жирный шрифт. МОЙ глаз радуется.
все буквы стали зубчатыми - видимо, из-за jpeg-a..
что сделал я:
1. открыл файл в WinDjView Extended; Вид->Режим->Черно-белый; Файл->Экспорт всех страниц->Тип файла: Картинки TIFF->Сохранить..
2. отредактировал картинку - "ужирнил" описанным выше способом, сохранил..
3. создал из картинки text.djvu с профилем very agressive..
4. извлек новую маску djvuextract.exe text.djvu Sjbz=mask
5. извлек старый фон djvuextract.exe "до.djvu" BG44=bg
6. собрал djvumake.exe after.djvu Sjbz=mask BG44=bg
вот что получилось http://rghost.ru/75SdvQ694 - имхо намного лучше - нет зазубренных букв и испорченных фоновых картинок..

Если бы был способ преобразовать чёрно-белое изображение в ноли и единицы (и обратно, естессно; единица- чёрный пиксель, а ноль- белый), можно было бы пободаться в алгоритме ужирнения шрифта с кем угодно.
*.bmp - это единицы и нули..

один

  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
все буквы стали зубчатыми - видимо, из-за jpeg-a..
Ковертация идёт так: *.djvu -> *.jpeg -> *.png (потом обратно)

Работа то есть идёт с *.png- файлами

А вообще есть такое. Мне приходится делать прозрачную копию файла, чтобы её наложить на оригинал и сдвинуть её влево и вверх. Прозрачную- это значит в файле *.png убирается белый цвет и остаются все остальные- но это в идеале. На практике-то там есть и белый и полубелый и четверть белый. И вот-эти-то пиксели для глаза белые, а для программы нет и она их не убирает. (экзешник convert из пакета ImageMagic), Поэтому в прозрачной копии много-много белых разрозненных точек. При сдвиге они накладываются на чёрные и получается зазубренность, хотя в общем случае шрифт всё равно жирнее.

Если бы картинка изначально была чисто чёрно-белой , а ещё лучше ОДИН текст- всё бы решалось просто, я бы конвертировал чисто в чёрно-белый *.jpeg безо всяких оттенков и с ним бы и работал. Но в *.djvu присутствуют серые картинки и их желательно сохранить при ужирнении шрифта.


один

  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
2. отредактировал картинку - "ужирнил" описанным выше способом, сохранил..
Хотелось бы поподробнее- какими инструментами работали и так далее.

N.M.E.

  • Пользователь
  • **
  • Сообщений: 87
    • Просмотр профиля
Ковертация идёт так: *.djvu -> *.jpeg -> *.png (потом обратно)
Работа то есть идёт с *.png- файлами
а зачем jpeg-то? чтоб поиметь его артефакты? :o
Цитировать
Если бы картинка изначально была чисто чёрно-белой , а ещё лучше ОДИН текст- всё бы решалось просто, я бы конвертировал чисто в чёрно-белый *.jpeg безо всяких оттенков и с ним бы и работал. Но в *.djvu присутствуют серые картинки и их желательно сохранить при ужирнении шрифта.
блин, я старался, сделал пример, разложил всё по полкам, а получается - всё впустую.. я же показал, как отделить от фоновой графики текст и после его обработки соединить обратно с неизмененным фоном! а здесь опять про какие-то оттенки.. нет их - текст в черно-белом файле получается!
и еще раз - конвертация в jpeg в абсолютном большинстве случаев приводит к ухудшению качества картинки.. НИКОГДА при конвертации нельзя использовать данный формат, особенно если ты не профессионал в редактировании графических файлов - это аксиома.. есть много других форматов, которые в отличии от jpeg производят конвертацию без потерь - надо использовать их, если не хочешь испортить картинку свойственными jpeg'у артефактами..
Цитировать
Хотелось бы поподробнее- какими инструментами работали и так далее.
в данном случае для единичной картинки я использовал фотошоп - делал смещения вручную.. для массовой правки данный метод не годится.. но, я на 100% уверен, что ImageMagic'ом (или каким-либо другим инструментом) можно пакетно всё это сделать..
в общем, при желании можно сделать книгу вполне приличного качества, а не эту, извиняюсь за выражение, фигню с зазубренными буквами и испорченным фоном.. как? - написано ранее..
если остались ко мне какие-то вопросы и т.п. - можно писать в личку, а лучше на ру-борде - пока здесь админ не очистит форум от наплыва порноизвращенцев, я в топики заглядывать не буду..

ivanen

  • Новичок
  • *
  • Сообщений: 1
    • MSN клиент - ivanoc.ivanov2015@yandex.ru
    • Yahoo клиент - ivanen
    • Просмотр профиля
    • Услуга «Закрытый профиль» и настройки публичности - это взаимоисключающие услуги и использовать их одновременно на нашем сайте нельзя. Но не стоит расстраиваться! С 10 июня 2015 года на нашем сайте стали доступны новые настройки публичности, которые позво
    • E-mail
Подскажите пожалуйста простую и доступную программу: как можно разрезать большой файл djvu на два файла djvu?