Конвертация PDF в изображения занимает огромное количество места - PullRequest
0 голосов
/ 16 октября 2018

У меня есть быстрый и грязный скрипт на python, который принимает PDF в качестве входных данных и сохраняет страницы в виде массива изображений (используя pdf2image ).

Что я не понимаю: 72 изображения занимают 920 МБ памяти.Однако, если я сохраню изображения в файл, а затем перезагрузлю их, я получу чуть более 30-40 МБ (общий размер изображений составляет 29 МБ).Имеет ли это смысл?

Я также попытался сбросить массив, используя pickle, и получил около 3 ГБ, прежде чем он вылетел из-за MemError.Я в полной растерянности от того, что съедает так много памяти ...

1 Ответ

0 голосов
/ 16 октября 2018

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

Возможно,также зависит от размера, количества изображений и т. д.

На последнем замечании, касающемся рассола.Pickle сам по себе является форматом дампа памяти, используемым Python для сохранения определенных переменных состояний.Вывод памяти в состояние сеанса на диске является довольно сложной задачей.Python не только должен преобразовывать все в формат, который позволяет сохранить состояние, но он также должен копировать все данные в известное состояние после его сохранения.Там для этого может потребоваться довольно много оперативной памяти и диска, чтобы сделать это.(Единственный способ обойти это обычно - разбить данные на части).

При ответе на некоторые комментарии одним из решений будет передача параметра fmt=jpg, который удерживает изображение в сжатом состоянии, что немного снижает использование ресурсов..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...