Иногда приходится, для какой-то сильно полезной книжки, заниматься для себя такими операциями:
1) преобразовать книжку в .pdf со сканами страниц - в набор последовательно пронумерованых файлов-изображений (удобнее всего для меня в формате .bmp) - это делают многие проги (пользуюсь
AnyMP4 PDF Converter 3.3.20)
2) преобразовать набор пронумерованых (упорядоченых по номеру) файлов-изображений - в один файл-книжку в формате .djvu (в программе
LizardTech Document Express Editor 6.0 как уже названо).
Для чего? Чтобы с привычными удобствами читать и листать книжку в .djvu. И чтобы иногда, кое-где, вносить исправления (исправлять опечатки или непропечатки) в текст, формулы, графики - некоторые опечатки или шумы заметно раздражают.
Такие операции делаю уже не так уж и редко (с книжками в .djvu и в .pdf), как бы набил тут руку, поэтому получается достаточно быстро. (Книжку .djvu превращаю в набор пронумерованых изображений в программе
DjvuOCR 2.3.)
Некоторые из названных выше программ:
-
LizardTech Document Express Editor 6.0. На рутракере есть и другие раздачи этой же проги.
-
DjvuOCR 2.3. На этой странице есть ссылка для скачивания DjvuOCR 2.3.
-
AnyMP4 PDF Converter 3.3.20. Эта прога, среди других возможных аналогов, хороша тем, что создавая из страниц в книге в .pdf выходные графические файлы (сканы страниц), она может создавать их в т.ч. с высоким разрешением DPI (800, 1000, или даже 1200).
Прога DjvuOCR в основном предназначена для добавления текстового слоя в документ .djvu, конкретнее - для добавления результата распознавания текста в проге FineReader 7.x и 8.x.
DjvuOCR может также декодировать файл djvu в набор пронумерованых файлов .bmp .tiff .png и т.д. - это операция "Djvu Decoder".
В DjvuOCR выходные сканы страниц (графические файлы-изображения) могут быть в том числе с очень высоким разрешением, максимально до 1200 DPI (DPI - dot per inch, число пикселей в 1 дюйме = 25,4 мм, по горизонтали и вертикали).
Если DPI входных страниц текста (они кем-то ранее перекодированы и помещены в файл djvu) - меньше, чем выходное DPI, указанный в проге DjvuOCR на выходе в настройках операции "Djvu Decoder", то происходит интерполяция между пикселами-точками внутри растрового изображения на каждой странице в файле djvu.
В результате увеличения DPI - в выходное изображение, между существующими точками входного изображения, путем интерполяции - вставляются новые, дополнительным точки, по вертикали (высоте) и по горизонтали (ширине).
Растровое изображение - это просто набор пикселов, прямоугольная упорядоченная решетка-матрица из пикселов. Все пикселы имеют какую-то одну, общую глубину цвета: 1 бит (черно-белое изображение, 2 цвета), 4 бита (16 цветов), 8 бит (256 цветов), 16 (65 тыс цветов) или 24 бит (16 млн цветов).
То есть утилита DjvuOCR может увеличить на выходе (в выходных графических файлах-изображениях) формальное разрешение DPI, от 300-400 (столько было) скажем до 600 или 800-900 (сколько задали). Следовательно эта прога может увеличить размер изображений страниц в пикселах, т.е. растровое разрешение картинки.
Допустим было 2000х3000 пикселей, стало 4000х6000 пикселей - если DPI на выходе увеличили в 2 раза (скажем от 300 до 600). То есть увеличение DPI в 2 раза увеличивает число пикселей в 2 x 2 = 4 раза, рост числа пикселей идет как квадрат DPI.
Для текста, формул, графиков (две оси координат с разметкой величин по осям, плюс сами кривые линии-графики, и всё на белом фоне), для схем и схематических рисунков, которые имеют высокое DPI (600-800-900), т.е. при большом количестве пикселов в изображении - проще и удобнее вносить вручную мелкие черно-белые исправления, чем в случае невысоких DPI (300-400).
Например делать копи-паст чистых символов для замены непропечатаных или грязных букв и символов, подрисовывать недостающее (непропечатаное) в формулах и графиках, или удалять тонкую грязь с букв, символов, графиков, рисунков.
Ну и так далее, всё (т.е. качество страниц книги) зависит от необходимости, и от вашего желания и времени.
Из входной книги в djvu или pdf - получаем на выходе сканы её страниц (файлы-изображения), после перекодирования книги с помощью программ DjvuOCR или AnyMP4 PDF.
Размер файла в байтах (килобайтах, мегабайтах) с растровым изображением (т.е. состоящим из точек-пикселов) увеличивается пропорционально общему количеству пикселов в изображении, и пропорционально количеству бит в одном пикселе т.е. глубине цвета - если изображение не сжато. (При увеличении DPI общее число пикселов растет как квадрат DPI как уже сказано.)
Например в изображении размером 1000 х 1000 пикселов - общее число пикселов равно 1 млн, и если глубина цвета каждого пиксела составляет 8 бит = 1 байт (глубина 256 цветов), то для хранения такого растрового изображения без сжатия надо 1 млн байтов (что чуть меньше 1 мегабайта = 1 048 576 байт = 1024 х 1024 по определению). Плюс нужны еще сколько-то байт для хранения информации о числе пикселов по горизонтали и вертикали (ширина и высота в пикселах), и о числе бит в каждом пикселе (глубина цвета), плюс другие подробности о формате хранения матрицы пикселов.
Все эти байты (само растровое изображение, т.е. матрица из пикселов в сжатом или несжатом виде, плюс инфа о формате хранения изображения) и составляют размер файла-изображения в байтах.
На практике оказывается, что рост размеров сырого (несжатого) изображения в формате bmp - при увеличении DPI, при перекодировании книги в отдельные страницы вида djvu => bmp или pdf => bmp - тут же в значительной степени компенсируется ростом степени сжатия файлов .bmp в архиваторах WinRAR и WinZIP. Если изображения страниц книги (в файлах .bmp) содержат в основном черно-белые или серые, контрастные (на белом фоне) растровые изображения текста, формул, графиков, простых рисунков из прямых и кривых линий, и содержат относительно немного изображений типа фотографий или сложных рисунков с градиентами полутонов.
То есть размер файла-архива .rar или .zip с такими файлами .bmp (с контрастными текстами и графиками на белом фоне) - растет намного-намного медленнее, чем квадрат DPI - при увеличении DPI в изображениях.
Насколько увеличиваются размеры файлов с растровыми изображениями (в килобайтах или мегабайтах), при росте общего числа пикселов - зависит конечно и от графического формата, в котором хранится растровое изображение (bmp png tiff jpg). А именно, есть ли в самом графическом формате сжатие (png tiff gif), или же сжатия нет (bmp). А если сжатие в графическом формате есть, то какое именно сжатие, насколько сильное: с потерей качества (jpg) или без потери (png tiff).
[Описание сжатия в графических форматах tiff png jpg - дано схематически, в первом приближении, для настроек по умолчанию.]
То есть оказывается, что растровые изображения лучше сжимать один раз и максимально сильно (несжатые файлы .bmp преобразуем в архивы .rar или .zip с максимальным сжатием), чем сжимать два раза (сначала внутри графических файлов .jpg .png .tiff, затем в тех же архивах .rar или .zip с тем же максимальным сжатием), и первое сжатие делается быстро и не слишком качественно (в файлах .jpg .png .tiff). В первом случае bmp => (rar | zip) размер итоговых файлов-архивов со сканами страниц получается меньше, чем во втором случае raw => (jpg | png | tiff) => (rar | zip).
В формате bmp в файле честно хранятся все пикселы без какого-либо сжатия, поэтому для данного изображения размер файла с форматом хранения bmp самый большой, по сравнению с другими графическими форматами.
Изображения bmp быстрее и проще всего редактируются в графических растровых редакторах (им не надо часто, постоянно делать сжатие-упаковку и расжатие-разупаковку всей матрицы пикселов).
С другой стороны файлы bmp (или их группа, т.е. вся книга), т.е. страницы книги с контрастными (без серого фона) изображениями текста, формул и графиков, и если их глубина цвета небольшая (серые или даже черно-белые) - очень хорошо сжимаются в файловых архиваторах WinZIP, WinRAR (и видимо в 7-Zip и в других), как уже подробно описано. В архиве .rar или .zip очень часто остаются 5-3% от первоначальных страшных размеров файлов .bmp в единицы или десятки мегабайт (в WinRAR или в WinZIP задана максимальная степень сжатия).
То есть особых проблем со свободным местом на компе для хранения группы файлов .bmp (такого-то типа, качества изображения) в архивах .rar или .zip не возникает.
Естественно можно не увеличить, а уменьшить DPI на выходе, по отношению к DPI на входе - если входное изображение в djvu чрезмерно высокого качества, и поэтому выходные файлы (bmp, tiff, png ...) занимают слишком много места. Будет происходит по сути та же самая интерполяция, но с обратной целью.
Видимо это редкий случай. Мне такая необходимость (уменьшить разрешение в djvu) пока не встречалась. Пока что приходилось, иногда, увеличивать DPI при раскодировании изображений страниц в книжке djvu, в большей или меньшей степени.