PC Help

 Към заглавната страница на PC HelpТърсене


Софтуер

 

PNG в Internet –
дошло ли е време?

Проектиран отдавна и усъвършенстван през годините. Уникален по своите качества и със солидна поддръжка в приложния софтуер. И все пак сравнително слабо разпространен. Да, това е той – Portable Network Graphics (PNG, произнася се “ping”), един впечатляващ с възможностите си формат за растерна графика.

Какво представлява PNG?

PNG може да се разглежда като значително усъвършенстван вариант на формата GIF. И наистина, той е създаден, за да замени GIF (алгоритъмът за компресия LZW, използван в GIF формата, е патентован, и затова има пречки пред свободното използване на GIF).

Първата спецификация на новия формат (първоначално наречен PBF – Portable Bitmap Format) е публикувана на 4 януари 1994 г. Само за седмица тя е съществено подобрена, а на 24-ти януари вече е публикуван шестият вариант на спецификацията. Новото име PNG е прието още на 6 януари – третият ден от обявяването на спецификацията. Окончателният вариант е публикуван на 15 октомври 1997 г. като RFC 2083. От този момент нататък програмите за растерна обработка (и не само те) могат спокойно да включат поддръжка на PNG. Колкото до причината да започнат да поддържат PNG, тя е проста – той е по-добър от GIF. В какво ли? Ето едно сравнение на възможностите на GIF (запазени в PNG) и новите “екстри”:

Пренесени от GIF: Нови възможности:
  • Индексиран цвят в изображенията - до 256 цвята

  • Поточност - файловете могат да се четат (от браузерите, например) докато се преточват. Така няма нужда да се чака зареждането на целия файл. Оттук е и следващата възможност:

  • Прогресивно изобразяване (interlacing) - такъв файл може да бъде изобразен докато се получава по комуникационната връзка, създавайки изображение с ниска резолюция, много бързо последвано от постепенно подобрение на детайлите

  • Прозрачност - части от изображението могат да се маркират като прозрачни. Това е същото, както и при GIF, и е много полезно в web дизайна – ползва се само изображението, без да се задава определен фонь Служебна информация - текстови коментари и други данни могат да бъдат съхраняване във файла на изображението

  • Пълна хардуерна и платформена независимост

  • Ефективна компресия без загуба на качеството

  • свободен за разпространение
    Пълноцветни изображения - до 48 бита на пиксел

  • Изображения в сив цвят - до 16 бита на пиксел

  • Пълен алфа канал за прозрачност (така лесно се постига ефект на мъгла, например, а след това може да се променя само този алфа канал). За момента обаче, липсва поддръжка на тази възможност от повечето браузери

  • Информация за гамата на изображението - това осигурява показването на изображенията с правилните яркост и контраст, независимо от машините, ползвани за създаване на изображението и тези, на които то се разглежда

  • Сигурно и точно засичане на повреда на файла, ако има такава (чрез CRC проверката)

  • Много по-мощен алгоритъм за компресия – при равни други елементи PNG графиките са чувствително по-малки от GIF

  • По-бързо начално показване на изображението при прогресивен режим на изобразяване

Като уточнение ще отбележа, че само 8 и 32-битовите PNG изображения поддържат прозрачност, а 24-битовите - не. 8-битовите графики ползват т.нар. “бинарна прозрачност”, наследена от GIF – прозрачните пиксели са прозрачни, а непрозрачните – не. 32-битовите ползват 8-битов алфа канал за прозрачност, чрез който се определя нейното ниво, т.е. колко прозрачно да бъде изображението.

Една добра новина е, че патентът на GIF формата междувременно изтече, така че в момента GIF също може да се използва свободно. Но време на писането на този материал (септември 2002 г.) това не беше така.

Ако сте чели внимателно (и познавате GIF), вероятно сте забелязали, че до момента не стана въпрос за анимираните графики. Да – поддръжката на анимация е в друг формат, наречен MNG (произнася се “ming”, разбира се). И също както при PNG, и тук първоначално името на формата е било различно – PNF (Portable Network Frame). Дата на “покръстването” – 24 август 1996 г. Принципът на изграждане на анимация при GIF е в поредните кадри, всеки от които замества предния (или част от него). Положението тук е принципно същото, и MNG съвсем слабо се различава по структурата си от статичния PNG. MNG също включва някои много интересни нови възможности, но сега няма да се спираме на тях.

PNG в Internet? OK. А как се справят браузерите?

Положението е по-скоро добро.

  • Най-популярният браузер – Internet Explorer за Windows поддържа PNG от версия 4.0 beta 1 (април 1997 г.). При него обаче не функционира поддръжката на алфа канала, като това важи за всички версии от 4 до 6 включително. Версията за Macintosh няма този проблем.

  • Netscape Communicator 4.0 не поддържа формата, но 4.04 (ноември 1997 г.) го поддържа. PNG може да се импортира и в анимациите на Flash (4 и по-новите версии).

  • Mozilla – всички настоящи версии поддържат PNG. Пълната поддръжка на алфа канала е факт за Linux и Macintosh от 13 април 2000 г., а за Windows – от 19 юли същата година.

  • Opera – от версия 3.51 поддържа PNG, а от версия 6 има пълна поддръжка на алфа канал

  • NetPositive (за BeOS) поддържа формата от версия 2.1, а алфа канала – от версия 2.2

  • WebTV – поддръжката на формата е от януари 1999 г., а на алфа канала – от август 2000 г.

Съществуват още десетки браузери за най-различни платформи. За тяхната поддръжка (и проблеми с поддръжката) на PNG можете да прочетете винаги актуална информация на адрес www.libpng.org/pub/png/pngapbr.html. Както виждате, вероятно поне 99.9 % от аудиторията на сайта ви може да разглежда PNG графики. Защо не се възползвате?

А защо PNG не се ползва толкова широко, колкото GIF и JPEG?

Причината за това е инерцията. Web дизайнерите често предпочитат да ползват по-добре познатите им (и най-вече утвърдени) формати GIF и JPEG, и те се утвърждават още повече. Всъщност PNG не би трябвало да се разглежда като конкурент на JPEG – предназначението му е различно (а и с JPEG се бори JPEG2000, но за това - друг път). JPEG е предвиден за фотореалистични изображения, и ползва компресия със загуба на качеството. PNG не е предвиден за тази цел, а компресията при него е без загуба на качеството, следователно се справя много по-слабо със снимките. Но при графики и схеми е много по-добър от GIF, а по-мощната компресия води до значително по-нисък обем. Резултатът за потребителя е по-бързо зареждаща се страница. Ще демонстрирам разликата в обема с няколко примера:


фиг. 1

фиг. 2

фиг. 3

фиг. 4

 

фиг. 1 Вид графика Размери (в пиксели) Обем Обем като PNG
JPEG, компресия: 22 640*415 30 KB 223 KB
фиг. 2 JPEG, компресия: 30 800*600 75 KB 671 KB
фиг. 3 GIF 800*576 16 KB 8.56 KB
фиг. 4 GIF 140*257 9.2 KB 6.42 KB

Всички GIF и PNG графики са с изключен interlacing за намаляване на обема.

Както се вижда от сравнението, PNG е подходящ за илюстрации, схеми и др., но за фотореалистични изображения е крайно непрепоръчително да се ползва (освен, ако е нужна перфектна картина без никакви – не само видими – загуби в качеството). Ако обаче запазим третата графика като GIF, обемът й би бил около 220 KB. Добре, но при PNG става 3 пъти повече – защо, нали компресията е по-добра. Това е една от основните грешки при сравняването на PNG с GIF. Причината е в броя на цветовете – GIF поддържа до 256 цвята, а PNG – пълноцветни изображения. Ако намалим цветовете в PNG варианта до 256, обема спада до 190 KB. Но бихте ли използвали GIF за подобно (вече не) фотореалистично изображение?!? Същото е и с PNG при 256 цвята. Просто предназначението на формата е различно.

Въпреки това намаляването на броя цветове до 256 (т.е. 8-битов цвят) е основният метод за оптимизиране на PNG графики (а не снимки). Други използвани техники са стандартното изрязване на ненужните части от картинката, както и конвертирането й към сиво (при сивите нюанси се поддържат до 16 бита на пиксел), ако това е допустимо.

В заключение може да се каже, че за всички статични графики (схеми, чертежи, неанимирани банери и др.) вече спокойно може да се използва PNG. При снимките безспорен лидер в момента е формата JPEG, но с времето и той ще бъде изтласкан от своя наследник – JPEG2000. Това обаче е предмет на друг материал.

Назад


Webmaster