Как PS / PDF хранит и сжимает растровые изображения? - PullRequest
1 голос
/ 03 апреля 2009

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

Я создаю прототипы с помощью сканера, GIMP для обработки растровых изображений и ImageMagick для преобразования растровых изображений в PDF.

Мой процесс выглядит следующим образом:

  • Сканирование в цвете 3x8bit, 600 DPI, Сжатый LZW файл в цвете TIFF размер около 8 Мб.

  • Использование GIMP для преобразования растрового изображения в индексированное изображение с типичной таблицей цветов из 4 до 8 цветов. Это делает изображение лучше сжимаемым.

  • Используйте ImageMagick для преобразования LZW-сжатый индексированный TIFF-файл PDF, около 500K на страницу.

Теперь, чтобы сделать изображение еще лучше сжимаемым, я могу сделать растровое изображение более удобным для сжатия. Прежде чем экспериментировать, я хотел бы узнать, как PS / PDF хранит растровые изображения.

Являются ли растровые изображения в PS / PDF кодируемыми по длине? Затем я получу сжатие, удалив отдельные пиксели из растровых строк.

У вас есть идеи для дальнейшей оптимизации?

Знаете ли вы ссылки на формат хранения растровых изображений в PS / PDF?

Ответы [ 5 ]

1 голос
/ 11 декабря 2009

Несколько компаний (Luratech и CamiNova - единственные, кого я знаю) делают модель «Смешанный растровый контент» в PDF. Файлы можно просматривать в стандартном Adobe Reader, но они очень и очень малы - сравнимо с DjVu.

«Смешанный растровый контент» означает, что они сегментируют изображение в черно-белую маску высокого разрешения (резкие края, линии, буквы) и гладкие тона изображения низкого разрешения (фоновые изображения). Маска сохраняется с использованием алгоритма битонального сжатия (вероятно, JBIG2), а изображение с плавным тоном сжимается с использованием JP2K (вероятно).

1 голос
/ 03 апреля 2009

PDF поддерживает множество типов сжатия изображений, см .: http://en.wikipedia.org/wiki/Pdf#Raster_images

Я думаю, вы можете указать, какой из них использовать с параметром imagemagick -compress: http://www.imagemagick.org/script/command-line-options.php#compress

0 голосов
/ 09 апреля 2009

Метод сжатия обычно выбирается инструментом, создающим PDF, и вы можете иметь ограниченный контроль над этим.

Если у вас есть Acrobat 9.0, есть действительно хорошая «скрытая» функция, которая позволяет вам видеть дерево объектов внутри PDF (вас интересуют объекты XObject в разделе «Ресурсы»). Существует короткий блог по его использованию на http://pdf.jpedal.org/java-pdf-blog/bid/10479/Viewing-PDF-objects

0 голосов
/ 03 апреля 2009

Справочник Adobe в формате PDF может быть хорошим началом. На первый взгляд кажется, что изображения хранятся без сжатия, но это не совсем правильно. Он также может ссылаться на внешние изображения, например, в формате JPEG.

0 голосов
/ 03 апреля 2009

Для растровых изображений, IIRC, PDF использует deflate. Но PDF также может хранить изображения с более конкретными алгоритмами сжатия изображений, такими как JPEG (с потерями), CCITT (без потерь), JBIG2 (без потерь и без потерь) и JPX (JPEG2000, с потерями и без потерь).

...