При оцифровке карт, афиш и других ресурсов больших физических размеров возможны два подхода к распространению.
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.