home

Работа с оцифрованными книгами с изображениями больших размеров (A1/A0/карты)

big-image-in-pdf.jpg

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

1. Создать PDF.

2. Создать веб-ресурс.

Растровый рендерер для больших изображений в PDF[править]

В большинстве случаев используется первый подход. Но он имеет ряд ограничений:

В PDF не известно число DPI с которым оцифровывается изображение, поэтому возможна ситуация, когда отрендеренное с печатным качеством изображение имеет размеры в десятки раз больше изображения, встроенного в PDF. Например сканируется изображение с 96DPI, затем изображение сжимается еще в два раза (до эффективных 48DPI) и только тогда встраивается в PDF.

Рендерер не знает, что весь PDF имеет низкое разрешение и рендерит его в 300 DPI (печатное качество принтеров), что приводит к созданию выходного изображения в 6 раз больше встроенного изображения с соответствующим увеличением размера файла.

Слишком большой размер изображения при рендеринге:

  • может вызвать ошибку выделения памяти для обработки изображения (так для рендеринга может потребоваться несколько гигабайт ОЗУ);
  • может быть превышено максимально-возможное число пикселей отрендеренного изображения, например кодировщик WebP из libwebp при попытке создать изображение больше 16383 пикселей будет выдавать ошибку:
cwebp: Error! Cannot encode picture as WebP Error code: 5 (BAD_DIMENSION: Bad picture dimension. Maximum width and height allowed is 16383 pixels.)

В результате в ELiS при использовании растровых рендереров для больших изображений возможны ошибки (страницы книги не будут рендериться или будут рендериться только в определенных форматах (скажем JPEG) и не рендериться в других (WebP). Ни один из растровых рендереров (pdfbox, poppler, pdfium, ghostscript) не пригодны для рендеринга больших изображений, встроенных в PDF.

Векторный рендерер для больших изображений в PDF[править]

Частично обойти эту проблему в ELiS можно с помощью векторного режима рендеринга (необходимо включить рендерер SVG на необходимом файле). Векторный рендерер будет извлекать изображение из PDF и сразу рендерить его в уменьшенном размере или вообще не будет менять его размер, отображая в том формате, в котором оно вставлено.

Векторный рендерер не применяется для генерации обложек и в приложениях ELiS, поэтому обложку надо создать в ручном режиме.

Пример такого изображения: https://e.gorkilib.ru/node/246224

Веб-ресурс для отображения больших изображений[править]

Изображение можно упаковать как веб-ресурс (если в изображении несколько страниц) или как изображение (если одна страница).

При встраивании веб-ресурсом можно также использовать подложку с текстом, как и в PDF.