Одним из преимуществ PNG является полная альфа-прозрачность, которая позволяет иметь гладкие края и тени в веб-дизайне. Основным недостатком является то, что он поддерживает только сжатие без потерь, что для сложных изображений означает очень большой размер файла.
JPEG, с другой стороны, предлагает отличную сжимаемость для сложных изображений, но не прозрачность.
И, наконец, я видел элементы Flash (пример здесь) с сильно сжатыми изображениями, которые также имеют сглаженные края. и тени. Я мало что знаю о Flash и понятия не имею, как это достигается. По сути, это тот эффект, который я хотел бы получить - большое сложное изображение с прозрачными и / или затененными краями.
Мои вопросы:
Как работает сжатие с потерями и прозрачность во Flash?
Используются ли здесь специальные приемы наслоения flash? Генерируются или растрируются тени в изображение, как я сделал бы с PNG.
Существуют ли какие-либо сценарии создания файлов SWF или SWF, которые могут заменить изображение PNG версией, сжатой с потерями?
Я думаю о прогрессивном улучшении, чтобы повысить скорость загрузки определенных элементов дизайна. Если этого не существует, можно ли было бы это написать?
Существуют ли какие-либо форматы, допускающие сжатие с потерями и прозрачностью?
Мне было сложно найти конкретную информацию по этому поводу. DjVu может быть кандидатом? Следует ли подталкивать производителей браузеров к поддержке другого формата?
Есть ли другие решения этой проблемы?
Текущие варианты - делать все во Flash или принимать файлы огромных размеров. Некоторые другие возможности:
- SVG и холст могут использовать края, но не поддерживаются IE.
- Вы можете разрезать PNG по строкам развертки и сжать их с помощью JPEG, оставив края как PNG. Это было бы неприятно в исходном коде, но это будет работать во всех браузерах. Звучит забавный проект, к утру напишу. :)
- Вы можете написать фильтр изображений с потерями, который может уменьшить сложность цвета вдоль строк развертки алгоритма PNG, чтобы улучшить сжатие в формате PNG. Я просто знал, что это должно существовать, но не мог его найти. Кто-нибудь знает об этом?
Спасибо за вашу помощь!