Алгоритмы уменьшения изображений, автоматическая оптимизация. Уменьшаем GIF (Graphics Interchange Format)
Рецепт №2: уменьшаем количество цветов
Рецепт №3: автоматическая оптимизация
Рецепт №4: уменьшаем анимацию вручную
Рецепт №5: когда GIF лучше PNG
Резюме
Для быстрой оптимизации изображений GIF, удобны программы автоматической оптимизации. Ни одна из них уже не развивается, что, впрочем, не мешает их использовать.
Чтобы выяснить насколько качественно справляются программы автоматической оптимизации GIF со своей работой, были использованы три набора изображений.
Первый набор — 494 иконки с небольшим количеством цветов, общим объ?мом 310 килобайт. Второй набор — 10 произвольных фрагментов фильмов, скачанных с сайта GIFTUBE, характеризующихся отсутствием статичных межкадровых элементов и использованием всей палитры цветов, объ?м 7,63МБ. Третий набор — 411 анимированных изображений, с использованием неполной палитры, в изобилии присутствуют статичные элементы, объ?м 21,95 МБ.
* — SuperGIF показал потрясающие способности (файлы были уменьшены более чем наполовину), но при проигрывании на всех оптимизированных изображениях появился шлейф от движущихся объектов.
Как показывают тесты, лучше всех справляется с оптимизацией изображения программа SuperGIF (платная программа BoxTop Software, $49,95), но результат её работы нужно контролировать: полноцветную анимацию она портит. Единственная программа из наших тестов, которая успешно оптимизировала такие изображения — это GIFLite, тоже платная программа компании White River Software (программа стоит $30, но существует ли компания неясно), закончившая сво? развитие в 1995 году. Программа под DOS.
Если с запуском SuperGIF проблем нет — это программа с графической оболочкой и почти без настроек, то GIFLite запустить сложнее: она работает только из командной строки, не поддерживает длинные имена файлов и не умеет самостоятельно выбирать метод, который оказался лучшим для конкретного файла. Эти печальные недостатки устраняет следующая программа, написанная на языке пакетных файлов Windows:
@ECHO OFF REM Написал Евгений «BOLK» Степанищев. 2007.
MKDIR GIFLITE.$$$ 2>nul
REM Основной цикл обработки файлов GIF FOR /R %%N IN (*.gif) DO @CALL :method %%N
REM Удаляем весь мусор, который мог остаться DEL /Q giflite.tmp 2>nul RMDIR /S /Q GIFLITE.$$$ EXIT
:method REM Перебираем методы FOR %%M IN (0 1 2 3) DO @CALL :giflite %%M %%~s1 %1
REM Сортируем полученное по размеру и забираем последний (наименьший) файл FOR /F "usebackq skip=3" %%R IN (`DIR /B /O-S GIFLITE.$$$`) DO @CALL :getresult %%R %1 GOTO :EOF
:getresult REM Переписываем файл на место прежнего, удаляем мусор MOVE /Y GIFLITE.$$$\%1 %2 DEL /Q GIFLITE.$$$\*.* GOTO :EOF
:giflite REM Запускаем преобразование GIFLITE.EXE -t -h -m%1 -o %2 GIFLITE.$$$\%1
Эта программа обработает все файлы GIF в текущей папке и вложенных.