Архив за Июль 2009

  • punypng

    Хоть и зарекался я не рекомендовать инструменты для пакетной оптимизации графики, но тут все-таки придется.

    Встречайте нового игрока — punypng. Новый сервис, очень похожий (но пока не такой удобный) на известный smush.it.

    После публикации на SM первой части статьи про оптимизацию PNG со мной связались ребята из проекта Ask.com — довольно известного на Западе поисковика. Они как раз начали разрабатывать очередной оптимизатор картинок для веба. Немного проконсультировавшись, они добавили чистку прозрачных пикселей, что в большинстве случаев дает довольно ощутимое сжатие. Так что я теперь являюсь консультантом проекта punypng, а этот пост — наглый пиар :)

    А теперь немного конкретики. Я прогнал несколько тестовых изображений через этот сервис и могу сказать, что результат был действительно впечатляющим. Практически на всех изображениях удавалось достичь дополнительного сжатия. Даже на изображениях, которые я оптимизировал вручную и прогнал через OptiPNG.

    Чтобы сравнить результаты, я дополнительно прогнал несколько изображений (наиболее показательным оказалось вот это) через smush.it и ImageOptim.

    smush.it использует утилиту pngcrush, которая по всем меркам является устаревшей. Она пытается перепаковать изображения, не меняя их тип (например, черно-белая RGB-картинка не будет преобразована в Grayscale). Утилита OptiPNG, которая является ответвлением от pngcrush, делает такие преобразования автоматически, но при этом работает гораздо медленнее (поэтому на smush.it используется pngcrush). Так что от этого сервиса ждать каких-то выдающихся результатов пока не приходится. Однако на выходе мы получаем «безопасное» преобразование, которое гарантирует, например, что полноцветный полупрозрачный PNG не будет преобразован в полупрозрачный PNG с палитрой (разница в отображении в IE6).

    ImageOptim, в свою очередь, пытается прогнать изображение через несколько библиотек, выбирая наилучший результат. Среди этих библиотек — PNGOUT Кена Сильвермана, которая априори должа выдавать лучший результат, так как использует собственный алгоритм упаковки данных. Даже она не смогла сжать лучше, чем punypng. Не говоря уже о том, что punypng отработал горазо быстрее, чем ImageOptim.

    Так что от всей души советую попробовать этот сервис. Я, в свою очередь, постараюсь описать больше алгоритмов оптимизации изображений, чтобы сделать сервис еще лучше.

    UPD: Окей, значит, расклад такой.

    PNGOUT сам не умеет перебирать фильтры. Как правильно заметил Павел у себя в блоге, с этим успешно справляется OptiPNG, выдавая в консоль статистику обработки файла. Соответственно, правильный способ максимального сжатия файла такой: сначала пропускаем через OptiPNG, получаем от него номер N примененного фильтра и отдаем его в качестве параметра -fN для PNGOUT.

    По поводу ImageOptim. Судя по исходнику, там PNGOUT используется без указания правильного фильтра, и, более того, применяет библиотеки не друг за другом на одном и том же файле, а независимо, выбирая наименьший результат (поправьте меня если не прав, так как Objective-C не знаю). Поэтому и результат сжатия у меня получился не самый лучший.

    PNGSquash, напротив, применяет библиотеки в цепочке, поэтому получается так сильно сжать файлы. Так что эта программка работает лучше, чем ImageOptim.

    Сейчас узнаю, как работает punypng.

    UPD2: punypng не использует PNGOUT из-за лицензионных ограничений. Есть вероятность того, что ребята сделают офлайновую версию punypng: для этого нужно всей толпой проголосовать за это предложение.

  • Руководство по оптимизации PNG

    Специально для Smashing Magazine написал руководство по оптимизации PNG (вернее, наоборот: руководство по оптимизации изображений для PNG). По сути, это собранные вместе статьи из Техногрета и моего блога, которые были немного переосмыслены, дополнены, упрощены и переведены на английский язык.

    Так как статья получилась довольно большой, ее разделили на две части. Вторая часть выйдет через неделю. Комментарии, вопросы и пожелания можно оставлять здесь.

  • Установка Aptana на Eclipse Galileo 3.5

    UPD: вышла Aptana 1.5, которая без проблем ставится на Eclipse 3.5 из update site: http://update15.aptana.org/studio/24896/ (спасибо Vii за ссылку). Так что все остальное тут написанное можно рассматривать как еще один способ установки плагинов.

    Вышел новый Eclipse Galileo 3.5, а в месте с ним появились очередные проблемы с совместимостью со старыми плагинами. Одна из самых неприятных проблем для меня — Aptana ни в какую не хочет ставится из update site. Как выяснилось, эта проблема вполне решаемая.

    1. Качаем любой дистрибутив Eclipse Galileo и распаковываем его.
    2. Качаем альфа-версию Aptana Andretti по секретной ссылке. Скачивать лучше zip-архив, а не установщик. Также распаковываем его.
    3. Запускаем Aptana Andretti. При первом запуске появится окошко Install Additional Features, в самом низу выбираем опцию Do not show again. Закрываем Aptana.
    4. Из той папки, где у вас находится Aptana, берем папки plugins и features и копируем их в папку dropins той директории, куда вы распаковали дистрибутив Eclipse.
    5. Запускаем Eclipse. Он при запуске спросит, какой workspace хотите использовать. Нужно выбрать тот, который был создан Aptana (папка Aptana Studio Workspace где-то внутри стандартной директории с документами), иначе при каждом запуске Eclipse будут вываливаться ошибки. Насколько я понял, их вызывает тот самый Install Additional Features, который пытается запуститься при запуске (поэтому нужно было выбрать Do not show again). Отключается это некой переменной, хранящейся внутри .metadata рабочего пространства, которую пока лень искать.
    6. Для надежности в настройках отключаем Welcome Screen (Aptana → My Aptana → Never display after startup) и перезапускаем Eclipse. Должно все работать как надо.
    Метки: , ,