Кіріспе

Жоқтайтын қысылумен бейне файл форматтарының отбасы

Портативті желілік графика (PNG, ресми айтылуы /p//ɪ//ŋ/ PING, әдеттегі тілде /p//iː//ɛ//n/'/dʒ//iː/ PEEenJEE) – деректерді жоғалтпай қысуды қолдайтын растрлық графика файл форматы. PNG графикалық алмасу форматының (GIF) жақсартылған, патенттелмеген орны ретінде әзірленді. Ресми емес түрде, PNG әріптері "PNG's not GIF" рекурсивті акронимін білдірді. PNG палитраға негіделген кескіндерді (24 бит RGB немесе 32 бит RGBA түстер палитралары бар), сұр масштабтағы кескіндерді (мөлдірлік үшін альфа арнасы бар немесе жоқ) және толық түсті, палитраға негіделмеген RGB немесе RGBA кескіндерін қолдайды. PNG жұмыс тобы осы форматты кәсіби сапалы басылымдық графика үшін емес, интернетте кескіндерді тарату үшін жасады; сондықтан CMYK сияқты RGB емес түс кеңістіктері қолдау таппайды. PNG файлы RFC 2083 құжатында сипатталған негізгі пиксельдер және мәтіндік түсініктемелер, сондай-ақ тұтастық тексерулері сияқты басқа да ақпараттарды кодтайтын кеңейтілген бөлшектер құрылымындағы бір кескінді қамтиды. PNG файлдарының файл кеңейтімі ".png" және MIME медиа типі "image/png". PNG 1997 жылдың наурызында ақпараттық RFC 2083 ретінде және 2004 жылы ISO/IEC 15948 стандарты ретінде жарияланды. Кейінірек ұсынылған басқа мүмкіндіктердің ішінде deflate қысылу алгоритмі және 24 биттік түс қолдауы бар. GIF-те соңғысының болмауы команданы өз файл форматтарын жасауға ынталандырды. Топ PNG Development Group деп аталды, ал талқылау кеңейген сайын, ол CompuServe форумымен байланысты пошта тізімін пайдаланды. 2001 жылы PNG әзірлеушілері анимацияны қолдайтын Көп кескінделі желілік графика (MNG) форматын жариялады. MNG орташа деңгейде қолдауға ие болды, бірақ ол негізгі веб-браузерлерде жеткіліксіз болды және веб-сайт дизайнерлері мен баспагерлер арасында қолданылмады. 2008 жылы Mozilla әзірлеушілерінің бірі ұқсас мақсаттармен Анимациялық Портативті Желілік Графика (APNG) форматын жариялады. APNG – Gecko және Presto негізіндегі веб-браузерлерде қолданылатын, сондай-ақ Sony PlayStation Portable жүйесіндегі миниатюралар үшін (әдеттегі PNG файл кеңейтімін пайдалана отырып) жиі қолданылатын формат. 2017 жылы Chromium негізіндегі браузерлер APNG қолдауын қабылдады. 2020 жылдың қаңтар айында Microsoft Edge Chromium негізіндегі болды, осылайша APNG қолдауын мұралады. Осыдан бастап барлық негізгі браузерлер APNG-ні қолдайды.

Бір-бірімен араласу

PNG опциялық 2 өлшемді, 7 қадамды тоқыма схемасын ұсынады – Adam7 алгоритмі. Бұл GIF-тің 1 өлшемді, 4 қадамды схемасынан күрделірек және деректерді жіберу кезінде, әсіресе бикубтық интерполяция сияқты интерполяция алгоритмдері қолданылса, төмен ажыратымдылықтағы кескінді ертерек және анық көруге мүмкіндік береді. Дегенмен, 7 қадамды схема қарапайым схемаларға қарағанда деректердің сығылуын азайтуға бейім.

Анимация

Негізгі PNG форматы анимацияны қолдамайды. MNG – PNG форматының кеңейтілген нұсқасы, оны PNG тобының мүшелері жасаған. MNG PNG форматының негізгі құрылымын және бөліктерін бөліседі, бірақ ол әлдеқайда күрделі және файлдың басқа қолтаңбасына ие, бұл оны стандартты PNG декодерлерімен үйлесімсіз етеді. Бұл дегеніміз, көптеген веб-браузерлер мен бағдарламалар MNG форматын ешқашан қолдамады немесе қолдауын тоқтатты. MNG форматының күрделілігі Mozilla Foundation әзірлеушілерінің APNG форматын ұсынуына себеп болды. APNG PNG форматына негізделген, анимацияны қолдайды және MNG форматынан қарапайым. APNG, APNG форматын қолдамайтын PNG декодерлері үшін бір суретті көрсетуге мүмкіндік береді. Бүгінде APNG форматын барлық негізгі веб-браузерлер қолдайды. APNG Firefox 3.0 және одан жоғары нұсқаларында, Pale Moon (барлық нұсқаларында) және Safari 8.0 және одан жоғары нұсқаларында қолдауға ие. Chromium 59.0 нұсқасы APNG қолдауын қосты, одан кейін Google Chrome да қолдады. Opera 10–12.1 нұсқаларында APNG форматы қолданылған, бірақ 15-ші нұсқасында Blink рендеринг қозғалтқышына ауысқанда қолдау тоқтатылды; Opera 46 нұсқасында (Chromium 59-дан мұрагерлік) қолдау қайта жаңартылды. Microsoft Edge APNG форматын Chromium негізіндегі қозғалтқышқа ауысқаннан кейін 79.0 нұсқасынан бастап қолдайды. 2007 жылдың сәуір айында PNG тобы APNG форматын қабылдамау туралы шешім қабылдады. ANG, aNIM/mPNG, "PNG in GIF" және оның "RGBA in GIF" кіші жиынтығы сияқты бірнеше баламалар талқыланды. Алайда, қазіргі уақытта тек APNG форматы ғана кеңінен қолданылады. PNG жұмыс тобының күшті қолдауымен PNG спецификациясының үшінші басылымы жасалып жатыр, осы арқылы APNG форматы спецификацияға кеңейтім ретінде енгізіледі.

JPEG

JPEG (Joint Photographic Experts Group) форматы фотосуреттер үшін PNG-ге қарағанда кішірек файл шығарады, себебі JPEG фотосуреттер деректеріне арналған, әрі осы деректерге қатысты жоғалтулы кодтау әдісін қолданады. Фотосуреттерде әдетте жұмсақ, төмен контрастты ауысулар және шу немесе осыған ұқсас бұзылыстар басым болады. Мұндай суреттер үшін жоғары сапалы JPEG орнына PNG қолданса, сапаның айтарлықтай артықшылығы болмай, файл мөлшері ғана артады. Керісінше, мәтін, сызықтық сурет немесе графика – өткір ауысулары мен қатты түсті үлкен аймақтары бар суреттерді сақтағанда, PNG форматы JPEG-ге қарағанда сурет деректерін тиімдірек қысып сақтай алады. Сонымен қатар, PNG жоғалтусыз, ал JPEG жоғары контраст аймақтарында көзге көрінетін бұрмалаушылықтарды (артефакттарды) тудырады. (Мұндай бұрмалаушылықтар JPG қысылу параметрлеріне байланысты, әсіресе төмен сапалы [жоғары қысылу] параметрлерінде айқын байқалады.) Егер суретте өткір ауысулар мен фотосуреттік бөліктер болса, екі эффекттің қайсысын бағалау керектігін шешу қажет. JPEG мөлдірлікті (прозрачность) қолдамайды. JPEG-тің жоғалтулы сығылуы ұрпақ жоғалтуынан да зардап шегеді, яғни суретті қайта-қайта кодтап сақтаған сайын ақпарат жоғалып, сурет сапасы төмендейді. PNG жоғалтусыз болғандықтан, өңдеуге арналған суреттерді сақтауға қолайлы. PNG фотосуреттерді сығыстыруда тиімді болғанымен, фотосуреттер үшін арнайы жоғалтусыз сығылу форматтары бар, мысалы, жоғалтусыз WebP және Adobe DNG (цифрлық негатив). Бірақ бұл форматтар кеңінен қолдауға ие емес немесе авторлық құқықпен қорғалған. Суретті жоғалтусыз сақтауға болады және тарату үшін ғана JPEG форматына айналдыруға болады, осылайша ұрпақ жоғалтуына жол берілмейді. PNG спецификациясында цифрлық камералар сияқты көздерден алынған EXIF сурет деректерін ендіру стандарты нақты көрсетілмегенімен, EXIF деректерін PNG-ге ендірудің ең қолайлы тәсілі – сынсыз қосымша бөлік белгісі eXIf-ті пайдалану. Алғашқы веб-браузерлер PNG суреттерін қолдамады, JPEG және GIF – негізгі сурет форматтары болды. JPEG веб-беттердегі градиенттері бар суреттерді экспорттау үшін жиі қолданылды, себебі GIF-тің түс тереңдігі шектеулі болды. Алайда, JPEG қысылуы градиенттің сәл бұлыңғырлануына себеп болады. PNG форматы берілген бит тереңдігінде градиентті мүмкіндігінше дәл көрсетеді, сонымен қатар файл мөлшерін кіші ұстайды. Веб-браузерлердің форматты қолдауы жақсарғанда, PNG кішкентай градиентті суреттер үшін ең қолайлы таңдауға айналды. Қазіргі заманғы браузерлерде градиенттерді көрсету үшін суреттердің қажеті жоқ, себебі градиенттерді CSS арқылы жасауға болады.

JPEG-LS

JPEG LS – Бірлескен фотографиялық сарапшылар тобының сурет форматы, бірақ жоғарыда талқыланған басқа жойғыш JPEG форматына қарағанда әлдеқайда аз танымал және қолдауға ие. Ол PNG форматымен тікелей салыстырылады және стандарттық сынақ суреттерінің жиынтығына ие. Waterloo Repertoire ColorSet-тегі стандарттық сынақ суреттері жиынтығында (JPEG LS сәйкестік сынақ жиынтығымен байланысты емес), JPEG LS әдетте PNG-ден 10–15% жақсы нәтижелер көрсетеді, бірақ кейбір суреттерде PNG 50–75% артық тиімділікпен жұмыс істейді. Сондықтан, егер осы екі форматтың да қолданылу мүмкіндігі болса және файл мөлшері маңызды өлшем болса, суреттерге қарай екеуін де қарастыру қажет.

ТИФФ

Тегті бейне файл пішімі (TIFF) – өте кең мүмкіндіктерді қамтитын пішім. Бұл TIFF-ті кәсіби бейне өңдеу бағдарламалары арасындағы ақпарат алмасу үшін қолдануға ыңғайлы жасайды, бірақ оны бағдарламаларға енгізу қиындық тудырады, сондықтан бейне өңдеумен байланысы жоқ (мысалы, веб-браузерлер) бағдарламаларда қолдауы шектеулі. Жоғары кеңейтімділік деңгейі көптеген бағдарламалардың мүмкіндіктердің тек бір бөлігін ғана ұсынатынын білдіреді, бұл пайдаланушыларды шатастыруға және үйлесімсіздік мәселелеріне әкелуі мүмкін. TIFF-пен ең көп қолданылатын жалпы мақсаттағы, жоғалтусыз сығылу алгоритмі – Lempel–Ziv–Welch (LZW). Бұл сығымдау әдісі GIF форматында да қолданылады және 2003 жылға дейін патенттелген. TIFF сонымен қатар PNG қолданатын сығылу алгоритмін де қолдайды (яғни Compression Tag 000816 'Adobe style'), орташа деңгейде қолданылады және бағдарламалармен қолдау көрсетіледі. TIFF CCITT Group IV сияқты арнайы мақсаттағы жоғалтусыз сығылу алгоритмдерін де ұсынады, олар екі деңгейлі кескіндерді (мысалы, факстерді немесе қара-ақ мәтінді) PNG сығылу алгоритмінен жақсы қысып шығарады. PNG тек алдын ала көбейтілмеген альфа қолдайды. Ол еркін бағдарламалық қамтамасыз ету лицензиясының шарттарымен ашық кодты бағдарламалық қамтамасыз ету ретінде жарияланған. Сондықтан, ол көбінесе еркін операциялық жүйелерде маңызды жүйелік кітапхана ретінде кездеседі.

PNG үшін битмап графикалық редакторының қолдауы

PNG форматы графикалық бағдарламалармен кеңінен қолданылады, оның ішінде Adobe Photoshop, Corel's Photo Paint және Paint Shop Pro, GIMP, GraphicConverter, Helicon Filter, ImageMagick, Inkscape, IrfanView, Pixel кескін редакторы, Paint. NET және Xara Photo & Graphic Designer сияқты көптеген бағдарламалар (сонымен қатар Canva сияқты онлайн графикалық дизайн платформалары). PNG-ні қолдайтын танымал операциялық жүйелерге енгізілген бағдарламаларға Microsoft-тың Paint және Apple-дың Photos/iPhoto және Preview кіреді, ал GIMP көбінесе танымал Linux дистрибутивтерімен бірге келеді. Adobe Fireworks (бұрын Macromedia) PNG-ні өзінің түпкілікті файл форматы ретінде пайдаланады, бұл басқа кескін редакторлары мен алдын ала қарау құралдарына суретті ашуға мүмкіндік береді. Алайда, Fireworks әдепкі бойынша қабаттар, анимация, векторлық деректер, мәтін және эффекттерге арналған метадеректерді сақтайды. Мұндай файлдарды тікелей таратпаған жөн. Fireworks оның орнына кескінді веб-беттерде пайдалану үшін қосымша метадеректерсіз оңтайланған PNG форматында экспорттауға болады.

PNG веб- шолғыштың қолдауы

PNG қолдауы алғаш рет 1997 жылы Internet Explorer 4.0b1 (32 бит, тек NT үшін) және Netscape 4.04 бағдарламаларында пайда болды. Free Software Foundation және World Wide Web Consortium (W3C) шақыруларына қарамастан, gif2png сияқты құралдар мен Burn All GIFs сияқты кампанияларға ілеспегенімен, веб-сайттарда PNG қабылдануы Internet Explorer-дегі кешіккен және қателі жұмыс істеуіне байланысты, әсіресе ашықтық мәселелеріне байланысты, өте баяу болды. PNG-мен үйлесімді браузерлер: Apple Safari, Google Chrome, Mozilla Firefox, Opera, Camino, Internet Explorer, Microsoft Edge және тағы да басқалары. Толық салыстыру үшін «Веб-браузерлерді салыстыру (Сурет форматтарын қолдау)» бетіне қараңыз. Әсіресе Internet Explorer (Windows) 9.0 нұсқасынан төмен (2011 жылы шығарылған) нұсқаларында PNG суреттерін дұрыс көрсетуге кедерес келтіретін көптеген мәселелер болды. 4.0 үлкен PNG бөліктерінде істен шықты. 4.0-та png файлдарын қарау мүмкіндігі жоқ, бірақ жүйелік тіркелмені түзетуге болады. 5.01 Windows 98 жүйесінде палитралық суреттерді қара (немесе қою сұрғылт) фонмен, кейде түстері түбегейлі өзгертіліп басып шығарады. 6.0 4097 немесе 4098 байт көлемді PNG кескіндерін көрсетуге қабілетсіз. 6.0 бір немесе бірнеше нөлдік IDAT бөліктері бар PNG файлын аша алмайды. Бұл мәселе алғаш рет 947864 қауіпсіздік жаңартуында (MS08 024) түзетілді. Қосымша ақпарат алу үшін Microsoft Knowledge Base-дегі 947864 MS08 024: Internet Explorer үшін жинақталған қауіпсіздік жаңартуы мақаласын қараңыз. 6.0 кейде PNG суреттерін көрсету қабілетін толығымен жоғалтады, бірақ әртүрлі түзетулер бар. 6.0 және одан төмен нұсқаларында альфа арнасының мөлдірлігін қолдау бұзылған (әдеттегі фондық түс көрсетіледі). 7.0 және одан төмен нұсқалары 8 биттік альфа-мөлдірлікпен элементтің мөлдірлігін (CSS – filter: Alpha (opacity=xx)) біріктіре алмайды, соның салдарынан жартылай мөлдір бөліктер қарамен толтырылады. 8.0 және одан төмен нұсқаларында гамма қолдауы тұрақсыз/бұзылған. 2006 жылы Microsoft Windows Vista жүйесінде PNG белгішелеріне қолдау енгізілді. PNG белгішелері AmigaOS 4, AROS, macOS, iOS және MorphOS жүйелерінде де қолдау табады. Сонымен қатар, Android PNG файлдарын кеңінен пайдаланады.

Файл өлшемі мен оңтайландыру бағдарламалық жасақтамасы

PNG файлдың мөлшері қалай кодталғаны мен қысылғанына байланысты едәуір өзгеруі мүмкін; бұл мәселе PNG: The Definitive Guide еңбегінде талқыланады және бірқатар кеңестер беріледі. Қысылу кезінде қосымша есептеулерді пайдалану арқылы DEFLATE қысығыштары кішірек файлдарды жасауға мүмкіндік береді. Осылайша, файл мөлшері мен жоғары түс тереңдігі, максималды метадеректер (түс кеңістігі туралы ақпаратты және дисплейге әсер етпейтін ақпаратты қоса алғанда), араластыру және қысылу жылдамдығы арасында айырбас жасалады. Бәрінен артық үлкен файлдарды жоғары емес түс тереңдігі, аз немесе қосымша бөліктердің болмауы, араластырудың жоқтығы және дұрыс реттелген, бірақ есептеу қуатын қажет ететін сүзгілеу мен қысылу қамтамасыз етеді. Әртүрлі мақсаттар үшін әртүрлі айырбастар таңдалады: мұрағаттау және өңдеу үшін максималды файл жақсырақ болуы мүмкін, ал веб-сайтта пайдалану үшін қысқартылған файл тиімдірек, сондай-ақ файлды қайта-қайта өңдеу және сақтау кезінде жылдам, бірақ нашар қысылу артық, ал файл тұрақты болғанда баяу, бірақ жоғары қысылу артық: мұрағаттау немесе жариялау кезінде. Араластыру – бұл айырбас: ол үлкен файлдарды ертерек көрсетуді күрт жылдамдатады (жауап беру уақытын жақсартады), бірақ файл мөлшерін арттыруы мүмкін (өткізу қабілетін төмендетуі мүмкін), әсіресе кіші файлдар үшін елеусіз пайдаға.

DEFLATE-ді оңтайландыру

Zopfli және LZMA SDK, өнімділігі төмендесе де, zlib-тің стандартты нұсқасына қарағанда жоғары сығылу деңгейін қамтамасыз ететін DEFLATE іске асырылымдарын ұсынады. AdvanceCOMP пакетінің advpng және advdef құралдары PNG файлдарын қайта сығу үшін осы кітапханаларды пайдалана алады. Сонымен қатар, PNGOUT өзіне тән DEFLATE іске асырылымына ие. advpng сүзгілерді қолдану опциясын ұсынбайды және әрқашан 0 сүзгісін жаһандық түрде қолданады (сурет деректерін сүзгілемей қалдырады); сондықтан сурет сүзгіленгенде айқын пайда көретін жағдайларда оны қолдану ұсынылмайды. Ал, сол пакетке кіретін advdef PNG форматының құрылымымен жұмыс істемейді және тек қайта сығушы ретінде әрекет етеді, бұрынғы сүзгі параметрлерін сақтайды.

Таңбашаларды оңтайландыру

Windows Vista және одан кейінгі нұсқаларға арналған белгішелер PNG кіші суреттерін қамтуы мүмкін болғандықтан, оңтайландырулар оларға да қолданылуы мүмкін. Кем дегенде бір белгіше редакторы, Pixelformer, ICO файлдарын сақтағанда арнайы оңтайландыру кезеңін жүзеге асыруға қабілетті, соның арқасында олардың көлемі кішірейеді. FileOptimizer (жоғарыда айтылған) ICO файлдарын да өңдей алады. macOS үшін белгішелер де PNG кіші суреттерін қамтуы мүмкін, бірақ осыған арналған құрал әзірленбеген.