Как оптимизировать (в Python) сжатие растровых изображений TIFF перед их вставкой в ​​PDF? Photoshop использует PredictoPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как оптимизировать (в Python) сжатие растровых изображений TIFF перед их вставкой в ​​PDF? Photoshop использует Predicto

Сообщение Anonymous »

Я написал инструмент на Python, который считывает изображения TIFF в формате CMYK или монохромные (уровни серого) и компонует их в PDF. Он использует хороший модуль (mPdf.py) от Дидье Стивенса и библиотеку zlib для сжатия растровых изображений. Это работает хорошо.
Теперь вопрос: я знаю, что если я использую /Filter /FlateDecode и смогу объединить /DecodeParms с Predictor 2, растровые изображения из изображений TIFF будут сжиматься намного лучше. Например, окончательный PDF-файл будет содержать:

Код: Выделить всё

/DecodeParms
Я понял код, чтобы получить сжатый поток, который должен быть близок к этому:

Код: Выделить всё

  import zlib

# compress dictionary using dictionary, zlib stream in z
# bitmap is an uncompressed data from a TIFF image
d = b'abcdefghijklmnopqrstuvwxyz'
c = zlib.compressobj(zdict=d)
z = c.compress(bitmap)
z += c.flush()
Однако я не уверен, как выбрать данные «d», которые мне нужно передать объекту сжатия перед сжатием растрового изображения.
Даже не знаю, поддерживает ли Predictor 2 лучший вариант и как его изменить.
Я знаю, какие изображения я собираюсь сжать: все 8-битные, некоторые монохромные (1 канал), некоторые CMYK с один канал, содержащий информацию, некоторые CMYK с разным сплошным цветом области одного цвета, с 10 разными значениями и множеством пустых (белых) областей (т. е. 0 во всех 4 каналах)
Другими словами, я знаю, что в растровых изображениях я хочу для сжатия будут часто появляться разные комбинации байтов, но я не знаю, как перенести эти знания в данные словаря.
Кроме того, поскольку меня не волнует время сжатия, которое параметр уровня (от 0 до 9) наиболее рекомендуемый по размеру и производительности декомпрессии?
Спасибо,
Игнасио

Подробнее здесь: https://stackoverflow.com/questions/792 ... erting-the
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»