bolega Цитата: Никакой универсальностью тут и не пахнет. Во-первых, рассчитана на малоцветные сканы (т.к. использует палитру).
К сожалению, да, недоглядел я - не универсален. Кстати, по спецификации DjVu, FGbz-чанк может содержать палетку до 65535 цветов (пункт "8.3.10 Foreground Color JB2 Chunk: FGbz").
А FG44, насколько я понимаю, не ограничен в количестве цветов (пункт "10.1 Definitions"):
Цитата: Compound DJVU Images and Photo DJVU Images contain color or grayscale image data. Color IW44 Images contain color image data. Grayscale IW44 Images contain grayscale image data. Color image data is coded using three color components, called Y, Cb, and Cr. These correspond to the usual YCbCr color space, adjusted to facilitate transformation to the RGB
Цитата: Вообще, когда начинаешь пытаться глубоко применять djvulibre, появляется горькое ощущение, что в нем постоянно чего-то не хватает. То того не предусмотрели, то другого.
Наверное, потому, что её делали учёные, а не практики.
Цитата: (а если я фон хочу раскрасить?)
Пожалуйста, добавляйте на вход djvumake также и чанк BG44, и всё.
Цитата: Это странно, учитывая, что авторы - мэтры и основатели djvu.
DjVuLibre ещё и загаживалась Лизардтеком в своё время - по словам Леона. Вообще это ИМХО тёмная история, почему DjVuLibre так неудобен.
Цитата: Был бы в djvulibre нормальный интерфейс в виде dll тогда другое дело.
Хорошая идея. Но некому это сделать - слишком непросто. Там, впрочем, есть низкоуровневый API, описанный в файле ddjvuapi.h :
http://www.djvu-soft.narod.ru/ddjvuapi.htm . И даже DLL уже тоже вроде бы есть - libdjvulibre.dll . Правда, в довесок к ней идёт куча другого малопонятного хлама - другие dll, manifest, и эта dll даёт доступ только к низкоуровневому API - что ИМХО неинтересно. Высокоуровневого API нет, насколько я знаю. Заиметь его было бы здорово, но тяжко.
И ещё мне не нравится, что там присутствуют libjpeg.dll, libtiff.dll, libz.dll - для поддержки обычных растровых форматов. Я бы под Windows прикрутил FreeImage вместо всего этого - куда как проще. Но Леон Боту - линуксоид, Windows даже не имеет, так что ему FreeImage был бы наоборот труднее.
Цитата: Ничего не произойдет, кроме ругани на неправильный синтаксис
А, ну это глюк. Замените апострофы двойными кавычками, и всё заработает. Наверное, это под Линуксом не важно.
Добавлено: Цитата: Ввели в djvumake возможность раскраски, но выбор наибеднейший: только прямоугольники и только с черной маской
Нет, не "только с черной маской". Каждый прямоугольник может иметь любой цвет, а также, если я не ошибаюсь, можно "рисовать" два раза по одному месту (в смысле, раскрашивать текст) - имитируя тем самым зоны более сложной формы. Отрисовка идёт в порядке разбора командной строки слева направо. Т.е. можно, например, закрасить текст на пол-скана синим цветом - а потом небольшой кусочек уже синего цвета перекрасить, скажем, в красный текст - и т.д. Для этого нужно в командной строке левее указать синий прямоугольник, а правее - красный.
Добавлено: bolega Вообще-то я считаю, что для слоя переднего плана 65 тыс. цветов (как в FGbz) - вполне достаточно. Ведь это цвета не пикселей, а блитов. А, как правило, на одну страницу редко бывает более 10 тыс. блитов. Так что, если на одной странице менее 65 тыс. блитов (а в жизни так оно и будет), то тогда каждому блиту можно назначить свой индивидуальный произвольный RGB-цвет.
Остаётся единственный минус FGbz перед FG44 - невозможность раскраски одного блита более чем одним цветом. ИМХО этим вполне можно пренебречь. Ведь это актуально только для псевдографики, а не для букв текста.
А в будущем, я думаю, что в перспективе возможен даже и такой фантастический ныне вариант - разбивать один блит на нужное количество блитов - не трогая соседние. Свойства формата DjVu это не запрещают вроде бы (надо подумать, конечно, так ли это).
Так что я бы на Вашем месте вариант с FG44 вообще бы не реализовывал - а только с FGbz. Разве что как исключительно редко нужную фичу.