PNG против GIF |
|
Переносимый сетевой графический формат (англ. Portable Network Graphics, PNG) разрабатывается как более эффективная, гибкая и свободная от патентов замена GIF- формату. PNG был задуман для хранения отдельных растровых изображений и дальнейшего их распространения по компьютерным сетям. PNG был создан в 1995 в ответ на давление со стороны Unisys и их патента на алгоритм LZW-сжатия, используемый в GIF. Хотя срок действия патента Unisys уже закончился, причины на переход от GIF к PNG остались практически прежними. Заменив GIF-изображения теми же самыми, но в формате PNG, можно ускорить загрузку страниц и сэкономить трафик пользователей. Алгоритмы сжатияPNG использует алгоритм deflate-сжатия обычно со скользящим окном в 32 Кб. Deflate является улучшенной версией алгоритма сжатия Lempel-Ziv (LZ77), который применяется в zip- и gzip-файлах. Созданный Phil Katz для второй версии PKZip, deflate совмещает LZ77 с кодированием Huffman и является на 10-30% более эффективным, чем LZW при сжатии без потери информации. Так же, как и gzip, некоторые инструменты по PNG- сжатию предполагают опциональный параметр «степень сжатия», которая варьируется от 1 до 9. По умолчанию выставляется 6. Практически всегда лучшим выбором для максимального сжатия является 9. Неудивительно, что изображения, сохраненные как PNG, обычно на 10-30% меньше по размеру, чем GIF, хотя в некоторых редких случаях они могут быть несколько больше (чаще всего это проявляется для небольших изображений). Обычно изображения с большими однотонными областями сжимаются лучше, чем градиентные с большим количеством переходов между цветами. Возможности PNGВ PNG присутствует набор возможностей, которые делают его привлекательным для использования во многих отраслях, где требуется применение ограниченной палитры. Поддержка в PNG 16-битной серой шкалы прекрасно подходит для создания точных радиологических изображений. PNG предварительно фильтрует данные по конкретному изображению при помощи предсказательных функций. Одной из них является «Вверх» (англ. Up), которая ищет похожие наборы данных в вертикальных шаблонах для полноцветных PNG. PNG с индексированными цветами (8 битов или меньше) обычно не выигрывает от использования фильтрации, поэтому стоит использовать «ничего» (англ. none), если есть возможность для выбора. Для полноцветных или серых изображений лучше применять «Адаптивный» (англ. Adaptive) алгоритм. Как говорит Greg Roelofs, «PNG, в основном, используется для создания 24-битных RGB сформированных изображений, например, картин с рассчитанным освещением с минимальным числом текстур или математических объектов. Они все обладают искусственно сглаженными цветовыми переходами, которые хорошо сжимаются при помощи PNG-фильтров. Некоторые фракталы могут вести себя таким же образом, но у многих из самых лучших примеров имеется достаточно «зашумленных» областей, которые сжимаются весьма слабо». Для веб-страниц вполне можно использовать PNG8 (8 битный формат), с помощью которого дизайнеры могут заменить существующие GIF-изображения. У PNG также может быть альфа-значение для каждого цвета в палитре, которое, фактически, означает, что используется RGBA-палитра, а не RGB-XOR-маска, как GIF. Это позволяет варьировать прозрачность цвета в больших пределах, сохраняя преимущества 8-битного изображения перед 32-битным. PNG могут также содержать только один уровень прозрачности, совсем как GIF89a. Алгоритм сжатия PNG для повторяющихся горизонтальных шаблонов совпадает с LZW-сжатием в GIF. Многослойный PNG-файл также может быть отображен на экране по загрузке только 25% всего файла, в то время как GIF требует загрузки 50% размера перед распознаванием. За исключением весьма редких случаев замена GIF-изображений на PNG-эквиваленты способна существенно уменьшить их размер. Ниже приведены некоторые из возможностей PNG-формата.
Поддержка PNG в браузерахВ Netscape естественная поддержка PNG весьма ограничена: начиная с версии 4.04, для Internet Explorer она зависит от операционной системы. Для Macintosh IE полностью поддерживает PNG с версии 5.0 (в том числе, включая альфа-канал). MSIE для Win32 и Unix обладает естественной поддержкой PNG (на деле же весьма посредственной) начиная с 4.0, но не поддерживает альфа-канал до версии 7.0 (это исправляется при помощи фильтра AlphaImageLoader). На данный момент большое количество разнообразных браузеров также поддерживает PNG, однако, лишь с 1-битной прозрачностью, что позволяет использовать PNG для замены неанимированных GIF. PNG и проблема соответствия для фоновых CSS-изображенийК несчастью, поддержка возможностей PNG-гаммы и цветовой коррекции не является кроссбраузерной. Наиболее часто рекомендуемой мерой для исправления возможных ошибок будет исключение фрагментов, обеспечивающих гамму и цветовую коррекцию, для создания «неименованного» PNG (удаление gAMA чанка). Это решает проблему цветового соответствия для современных браузеров, кроме Safari под Mac до OS 10.4 (тут может помочь удаление sRBG чанка, подробнее об удалении чанков рассказывается немного ниже). Для отдельных PNG-изображений это совсем не проблема, но для дизайна веб-страниц, который требует точного соответствия между CSS-фоном и PNG, к сожалению, это имеет значение (однако, может быть устранено указанными выше путями). Анимированные PNG: MNG против "PNG+"Формат составной сетевой графики (англ. Multiple Network Graphics, MNG) представляет собой несколько PNG-изображений, по аналогии с GIF89a. Однако, MNG-формат является более сложным и не поддерживается текущими браузерами (для этого нужно использовать бесплатное расширение libmng). Группа разработчиков Mozilla расширила текущий (для одного изображения) PNG-формат в браузере Firefox 3, добавив несколько дополнительных кадров для анимации. Существует также встречное предложение со стороны членов группы PNG, подразумевающее создание чего-то подобного, однако, не противоречащего спецификации PNG. Оба этих направления значительно проще, чем MNG, и оба открыты для голосования в группе PNG. Сейчас же для анимации изображений лучше всего применять GIF89a или Flash. Однако последние достижения в векторной графике, SVG, и развитие анимационных JavaScript- библиотек составляют реальную конкуренцию указанным форматам. Вполне возможно, что через несколько лет вся несложная анимация в браузерах будет осуществляться при использовании именно такого подхода. Двигаемся к маленьким PNGPNG работает лучше с большими однотонными областями. Чтобы увеличить степень сжатия, стоит уменьшить количество «шума» в ваших картинках для увеличения размеров однотонных областей. Уменьшайте области размывания, хотя для изображений с градиентами размывание позволяет использовать меньшую глубину цвета. Избегайте сглаживания текста для уменьшения числа цветов, которые для него необходимы, в финальном изображении. По возможности, уменьшайте число цветов в вашем исходном изображении, если в процессе разработки этот фактор можно контролировать. Стоит также избегать использования многослойных PNG-изображений для уменьшения размера файла, так как семипроходная многослойная схема может добавить от 20% до 35% к размеру PNG- файла. Наконец, можно применять специальное программное обеспечение для оптимизации PNG-изображений, которое специально разрабатывается с этой целью, например, pngout или pngcrush. Полезные советыНиже приведено несколько простых советов, как текущие изображения можно дополнительно уменьшить в размере. Можно написать простой скрипт, который перебирает директории с изображениями перед публикацией сайта и делает следующие действия (далее приведены примеры запуска утилит из командной строки для ОС Linux). 1. Преобразовывает GIF в PNG (и проверяет, есть ли при этом выигрыш): convert image.gif image.png или так gif2png -nstO image.gif image.png 2. Уменьшает PNG файлы в размере: pngcrush -qz3 -brute image.png result.png если при этом нужно удалить и gAMA чанк, то: pngcrush -qz3 -rem gAMA -brute image.png result.png если при этом хотим удалить другие чанки, отвечающие за цветовую коррекцию, то: pngcrush -qz3 -rem gAMA -rem cHRM -rem iCCP -rem sRGB \ -brute image.png result.png 3. Уменьшает JPEG-файлы в размере (без потери качества): jpegtran -copy none -optimize -perfect image.jpg > result.jpg Под Windows для уменьшения .png изображений можно использовать TweakPNG ( http://entropymine.com/jason/tweakpng/ ). Аналогом jpegtran является набор портированных утилит jpeg, которые можно загрузить по адресу: http://sourceforge.net/projects/gnuwin32/ Для отдельно взятой страницы общий размер изображений может быть уменьшен на 20- 30% только благодаря следованию этим простым советам.
|
Продвижение в регионахВ апреле 2009-го года «Яндекс» применил раздельное региональное ранжирование и этот день стал днем новой эпохи российского поискового маркетинга. Ранжирование Яндекс представил в составе алгоритма «Арзамас», из 3-х регионов в России (Москву, Санкт-Петербург и Россию целиком) и отдельные выдачи для почти десятка государств СНГ. Позднее презентовался «Арзамас 1.2» – ранжирование уже включило...Читать полностью |
Использование приемов при оптимизации сайтаНекоторые оптимизаторы прибегают к использованию черных и серых методов продвижения, в поисках решения, которое позволило бы сайту занять место в заветной десятке лидеров результатов поиска. Черными называют запрещенные приемы оптимизации. Поисковая система при обнаружении одного из них наказывает сайт, исключая его из базы данных. Серые методы продвижения не считаются запрещенными, но грань... Читать полностью |
Поисковики фильтруют ссылкиНепот - это нелегальная "взаимовыручка" среди оптимизаторов сайтов. Например, веб-ресурс А поставил ссылку на сайт Б по дружбе или за деньги, а тот в ответ разместил ссылку на свой сайт. Врезультате оба ресурса стали "более весомыми". Скажите, что этокольцевой линкообмен? Это не так. При кольцевом обмене, прежде всего,учитывается контент - сайты обмениваются ссылками, потому что считают,что... Читать полностью |
Что ждет нас в будущем?Как мы видим, Яндекс не стоит на месте, и я уверен, что поисковые технологии этой системы будут развиваться и дальше, чтобы повышать качество поиска, которое пока трудно назвать идеальным. Читать полностью |
