Для чтения gif/png-картинок используется GraphicEx from Mike Lischke
Но эта библиотека не позволяет создавать ни gif, ни png. Они только читаются правильно, а сохранения там нет вовсе.
Начал искать альтернативы.
Для PNG довольно быстро у себя в архивах нашел TPNGImage from [email protected]
Единственно докрутил сам вызов события OnProgress при сохранении.
Работает медленно, но пока терпимо.
Из первостепенного – нужно избавиться от дублирования файлов для сжатия. Они есть и в GraphicEx, и в TPNGImage (adler.obj, deflate.obj etc). С наскоку убрать не удалось – эти файлы из разных версий с разными опубликованными методами. Лишнего там на 40-45Kb
А вот с GIF замучился. От RXLib (TRxGifAnimator) отказался сразу – слишком много лишнего тянет в себе и анимация мне не нужна вовсе.
Потом взял TGIFImage from Anders Melander. У меня он был версии 06-Oct-2002. Прикрутился быстро, но качество создаваемых картинок абсолютно не впечатлило – цвета калечились очень сильно.
Сегодня сходил к нему на сайт http://melander.dk/delphi/gifimage
Оказалось он передал этот компонент в CodeGear и он включен в BDS 2007. Взял его новую версию и воткнул к себе в Delphi 5. После получаса исправления ошибок компиляции все заработало и результатом создаваемых картинок я доволен.