Эффективность использования PNG по сравнению с BMP с большими файлами

Я написал картографическую программу на Delphi, где пользователь может загрузить растровое изображение в фоновом режиме, которое я сохраняю в памяти. В одном случае пользователь успешно загрузил 44-мегабайтный BMP, но программа работала вяло, и когда он печатал (я разбиваю вывод на плитку), он получал ошибку «Недостаточно ресурсов». Я преобразовал BMP в PNG (3 МБ), и программа работает намного лучше, а задание на печать выполнено успешно.

Поскольку в любом случае PNG необходимо расширить до DIB того же размера, почему существует разница в производительности/ресурсах? Во всяком случае, для загрузки PNG потребуется больше работы и выделения памяти. Что мне не хватает?

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

8
задан Mitch 6 April 2012 в 14:57
поделиться