Пока вам не нужно сжимать на iPhone, декодирование Lempel-Ziv довольно быстрое. Однако получится ли хорошее сжатие - это другой вопрос. Ваш первый шаг должен состоять в том, чтобы выгрузить изображение в формате ppm
и сжать его до gzip
. Я пробовал это на нескольких снимках экрана SO, и, поскольку количество цветов относительно невелико, полученные файлы имеют примерно тот же размер, что и PNG (немного меньше). Тест
pngtopnm so.png | gzip -v9 | wc -c
Если этот тест производит что-то достаточно маленькое для вашего приложения, вы можете пойти & mdash; просто запустить gzip для необработанных растровых изображений и использовать крошечный фактический декодер libz в своем приложении для iPhone. Если это не так достаточно быстро, вы можете попробовать еще более быстрые декодеры на основе Lempel-Ziv.
Если ваши изображения имеют много цветов, и это не очень хорошо работает, вы можете рассмотреть какую-либо форму сжатия с потерями.