{"id":465952,"date":"2025-07-03T21:01:23","date_gmt":"2025-07-03T21:01:23","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=465952"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=465952","title":{"rendered":"<span>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 PNG: \u043e\u0442 \u043f\u0435\u0440\u0432\u043e\u0439 \u0434\u043e \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h3>TL;DR<\/h3>\n<h4>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h4>\n<p>\u041d\u0435\u0434\u0430\u0432\u043d\u043e \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0442\u0440\u0435\u0442\u044c\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 Portable Network Graphics (PNG) 2025 \u0433\u043e\u0434\u0430, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u0430\u044f World Wide Web Consortium (W3C), \u043f\u0440\u0438\u0432\u043b\u0435\u043a\u043b\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043a \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 (<a href=\"https:\/\/www.w3.org\/TR\/png-3\/\" rel=\"noopener noreferrer nofollow\">W3C PNG Specification (Third Edition, 2025)<\/a>). \u0420\u0430\u043d\u0435\u0435 \u044f, \u043a\u0430\u043a \u0438 \u043c\u043d\u043e\u0433\u0438\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b PNG, \u043d\u0435 \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u044f\u0441\u044c \u043e \u0435\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0438 \u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f\u0445. \u0423\u0433\u043b\u0443\u0431\u0438\u0432\u0448\u0438\u0441\u044c \u0432 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0439 PNG (1996, 2003, 2025), \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u043e\u0431\u0449\u0438\u0442\u044c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438 \u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0432\u0435\u0431-\u0434\u0438\u0437\u0430\u0439\u043d\u0430, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u0433\u0440 \u0438 \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u0435\u0434\u0438\u0430. \u0421\u0442\u0430\u0442\u044c\u044f \u043d\u0435 \u043f\u0440\u0435\u0442\u0435\u043d\u0434\u0443\u0435\u0442 \u043d\u0430 \u0438\u0441\u0447\u0435\u0440\u043f\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u043e\u0445\u0432\u0430\u0442, \u043d\u043e \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0441\u044f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u043e\u0431\u0437\u043e\u0440 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043d\u043d\u044b\u0445, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445. \u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442\u0441\u044f \u043b\u044e\u0431\u044b\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u044f \u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u043a \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438. \u0412\u0435\u0441\u044c \u043a\u043e\u0434, \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 \u043d\u0438\u0436\u0435, \u0432\u044b\u043b\u043e\u0436\u0438\u043b \u0432\u00a0<a href=\"https:\/\/github.com\/pulichkin\/pngsamples\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439<\/a>. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0442\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c \u0438 \u0443\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1a5\/8cc\/97f\/1a58cc97fc87426dd84b794ee38f29ee.jpg\" width=\"1280\" height=\"731\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/1a5\/8cc\/97f\/1a58cc97fc87426dd84b794ee38f29ee.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1a5\/8cc\/97f\/1a58cc97fc87426dd84b794ee38f29ee.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<hr\/>\n<h3>\u041f\u043e\u0447\u0435\u043c\u0443 PNG \u0441\u0442\u0430\u043b \u0437\u0430\u043c\u0435\u043d\u043e\u0439 GIF?<\/h3>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1ee\/111\/d18\/1ee111d1834f62f36e4d538749fc43c8.jpg\" width=\"1280\" height=\"731\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/1ee\/111\/d18\/1ee111d1834f62f36e4d538749fc43c8.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1ee\/111\/d18\/1ee111d1834f62f36e4d538749fc43c8.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0424\u043e\u0440\u043c\u0430\u0442 PNG (Portable Network Graphics) \u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u043d \u0432 1995 \u0433\u043e\u0434\u0443 \u043a\u0430\u043a \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u0430\u044f \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 \u0444\u043e\u0440\u043c\u0430\u0442\u0443 GIF (Graphics Interchange Format), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u043f\u0430\u0442\u0435\u043d\u0442\u043d\u044b\u043c\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u043c\u0438. GIF, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0439 CompuServe \u0432 1987 \u0433\u043e\u0434\u0443, \u0431\u044b\u043b \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u0435\u043d \u0432 \u0440\u0430\u043d\u043d\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0435 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u0438 \u0441\u0436\u0430\u0442\u0438\u044f \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c, \u043d\u043e \u0432 1994 \u0433\u043e\u0434\u0443 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Unisys \u043d\u0430\u0447\u0430\u043b\u0430 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c \u0440\u043e\u044f\u043b\u0442\u0438 \u0437\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0441\u0436\u0430\u0442\u0438\u044f LZW (Lempel-Ziv-Welch), \u0447\u0442\u043e \u0432\u044b\u0437\u0432\u0430\u043b\u043e \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u044b \u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043a\u0430\u043c\u043f\u0430\u043d\u0438\u044e \u00abBurn All GIFs\u00bb \u0432 1999 \u0433\u043e\u0434\u0443 (\u00ab\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0430 PNG\u00bb). PNG \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u0440\u0435\u0448\u0435\u043d\u0438\u0435: \u043f\u0430\u0442\u0435\u043d\u0442\u043d\u043e-\u0447\u0438\u0441\u0442\u043e\u0435 \u0441\u0436\u0430\u0442\u0438\u0435, \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u0441 \u0430\u043b\u044c\u0444\u0430-\u043a\u0430\u043d\u0430\u043b\u043e\u043c \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0446\u0432\u0435\u0442\u043e\u0432. \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u044e PNG \u043e\u0442 \u043f\u0435\u0440\u0432\u043e\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438 1996 \u0433\u043e\u0434\u0430 \u0434\u043e \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438 2025 \u0433\u043e\u0434\u0430, \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044f \u0438\u0445 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0430 \u2014 \u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 50 x 50 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u043d\u0430 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u043c \u0444\u043e\u043d\u0435 100 x 100 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u2014 \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043d\u0430 Python.<\/p>\n<p>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 GIF \u043d\u0430\u0447\u0430\u043b\u0430\u0441\u044c \u0432 1993 \u0433\u043e\u0434\u0443, \u043a\u043e\u0433\u0434\u0430 Unisys, \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0430\u044f \u043f\u0430\u0442\u0435\u043d\u0442\u043e\u043c \u043d\u0430 LZW (US Patent 4,558,302, 1985), \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0430, \u0447\u0442\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 GIF, \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043b\u0430\u0442\u0438\u0442\u044c \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u043e\u043d\u043d\u044b\u0435 \u043e\u0442\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f. \u041a \u0434\u0435\u043a\u0430\u0431\u0440\u044e 1994 \u0433\u043e\u0434\u0430 CompuServe, \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c GIF, \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u043b\u0430 \u044d\u0442\u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f, \u0447\u0442\u043e \u0432\u044b\u0437\u0432\u0430\u043b\u043e \u0432\u043e\u0437\u043c\u0443\u0449\u0435\u043d\u0438\u0435 \u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435. \u0412\u0435\u0431-\u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0438\u0435 GIF \u0434\u043b\u044f \u043a\u043d\u043e\u043f\u043e\u043a, \u0438\u043a\u043e\u043d\u043e\u043a \u0438 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0439, \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u0438\u0441\u043a\u0430\u0442\u044c \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0443. \u041a\u0430\u043c\u043f\u0430\u043d\u0438\u044f \u00abBurn All GIFs\u00bb, \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u0430\u044f 5 \u043d\u043e\u044f\u0431\u0440\u044f 1999 \u0433\u043e\u0434\u0430, \u043f\u0440\u0438\u0437\u044b\u0432\u0430\u043b\u0430 \u043e\u0442\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043e\u0442 GIF \u0432 \u0437\u043d\u0430\u043a \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0430 \u043f\u0440\u043e\u0442\u0438\u0432 \u043f\u0430\u0442\u0435\u043d\u0442\u043d\u044b\u0445 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 (PNG: The Definitive Guide, Chapter 7).<\/p>\n<p>4 \u044f\u043d\u0432\u0430\u0440\u044f 1995 \u0433\u043e\u0434\u0430 \u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u0422\u043e\u043c\u0430\u0441 \u0411\u0443\u0442\u0435\u043b\u043b \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b \u0432 \u0433\u0440\u0443\u043f\u043f\u0430\u0445 Usenet, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a <a href=\"http:\/\/comp.graphics\" rel=\"noopener noreferrer nofollow\">comp.graphics<\/a> \u0438 comp.compression, \u043f\u0435\u0440\u0432\u044b\u0439 \u0447\u0435\u0440\u043d\u043e\u0432\u0438\u043a \u043d\u043e\u0432\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430, \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u043d\u043e\u0433\u043e PBF (Portable Bitmap Format). \u0421\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u043e \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0432 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438:<\/p>\n<ul>\n<li>\n<p><strong>\u0421\u0436\u0430\u0442\u0438\u0435 DEFLATE<\/strong>: \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0438 \u043f\u0430\u0442\u0435\u043d\u0442\u043d\u043e-\u0447\u0438\u0441\u0442\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0439 \u0416\u0430\u043d\u043e\u043c-\u041b\u0443 \u0413\u0430\u0439\u0438 \u0438 \u041c\u0430\u0440\u043a\u043e\u043c \u0410\u0434\u043b\u0435\u0440\u043e\u043c.<\/p>\n<\/li>\n<li>\n<p><strong>\u041f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c<\/strong>: \u0430\u043b\u044c\u0444\u0430-\u043a\u0430\u043d\u0430\u043b \u0434\u043b\u044f \u043f\u043b\u0430\u0432\u043d\u043e\u0439 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u0438, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u0438 GIF.<\/p>\n<\/li>\n<li>\n<p><strong>24-\u0431\u0438\u0442\u043d\u044b\u0435 \u0446\u0432\u0435\u0442\u0430<\/strong>: \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 16,7 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430 \u043e\u0442\u0442\u0435\u043d\u043a\u043e\u0432 \u043f\u0440\u043e\u0442\u0438\u0432 256 \u0446\u0432\u0435\u0442\u043e\u0432 \u0432 GIF.<\/p>\n<\/li>\n<li>\n<p><strong>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 PNG<\/strong>: \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043e \u041e\u043b\u0438\u0432\u0435\u0440\u043e\u043c \u0424\u0440\u043e\u043c\u043c\u0435 \u043a\u0430\u043a \u00abPNG\u2019s Not GIF\u00bb, \u043f\u043e\u0434\u0447\u0451\u0440\u043a\u0438\u0432\u0430\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u0443 \u043e\u0442 \u043f\u0430\u0442\u0435\u043d\u0442\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<p>\u041a 7 \u0444\u0435\u0432\u0440\u0430\u043b\u044f 1995 \u0433\u043e\u0434\u0430 CompuServe \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0430 PNG \u043f\u0440\u0435\u0435\u043c\u043d\u0438\u043a\u043e\u043c GIF. \u041a 7 \u043c\u0430\u0440\u0442\u0430 1995 \u0433\u043e\u0434\u0430, \u043f\u043e\u0441\u043b\u0435 \u0434\u0435\u0432\u044f\u0442\u0438 \u0447\u0435\u0440\u043d\u043e\u0432\u0438\u043a\u043e\u0432, \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0431\u044b\u043b\u0430 \u0437\u0430\u043c\u043e\u0440\u043e\u0436\u0435\u043d\u0430. 1 \u043c\u0430\u044f 1995 \u0433\u043e\u0434\u0430 \u0432\u044b\u0448\u043b\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 zlib (\u0434\u043b\u044f \u0441\u0436\u0430\u0442\u0438\u044f DEFLATE) \u0438 libpng (\u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 PNG), \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0416\u0430\u043d\u043e\u043c-\u041b\u0443 \u0413\u0430\u0439\u0438, \u041c\u0430\u0440\u043a\u043e\u043c \u0410\u0434\u043b\u0435\u0440\u043e\u043c \u0438 \u0413\u0430\u0435\u043c \u042d\u0440\u0438\u043a\u043e\u043c \u0428\u0430\u043b\u043d\u0430\u0442\u043e\u043c. 1 \u043e\u043a\u0442\u044f\u0431\u0440\u044f 1996 \u0433\u043e\u0434\u0430 PNG \u0441\u0442\u0430\u043b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u043c W3C, \u0430 \u043a 1997 \u0433\u043e\u0434\u0443 \u0435\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u044b, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a Internet Explorer 4.0 \u0438 Netscape Navigator 4.04 (\u00ab\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0430 PNG\u00bb).<\/p>\n<h4>DEFLATE \u043f\u0440\u043e\u0442\u0438\u0432 LZW: \u0412 \u0447\u0451\u043c \u0440\u0430\u0437\u043d\u0438\u0446\u0430?<\/h4>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/47b\/120\/277\/47b12027745a02298fa48a9b30910a48.jpg\" width=\"700\" height=\"450\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/47b\/120\/277\/47b12027745a02298fa48a9b30910a48.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/47b\/120\/277\/47b12027745a02298fa48a9b30910a48.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0441\u0436\u0430\u0442\u0438\u044f LZW \u0438 DEFLATE \u2014 \u044d\u0442\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u043e\u0432, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439. LZW, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0432 GIF, \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u0437\u0430\u043c\u0435\u043d\u044f\u044f \u0438\u0445 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u043c\u0438 \u043a\u043e\u0434\u0430\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0432 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u00abABABAB\u00bb, LZW \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 \u0435\u0451 \u043e\u0434\u043d\u0438\u043c \u043a\u043e\u0434\u043e\u043c, \u0447\u0442\u043e \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 \u043c\u0435\u0441\u0442\u043e. \u041e\u0434\u043d\u0430\u043a\u043e LZW \u0431\u044b\u043b \u0437\u0430\u043f\u0430\u0442\u0435\u043d\u0442\u043e\u0432\u0430\u043d Unisys, \u0447\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u043b\u043e \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 (Linux Journal: PNG \u2014 A Replacement for GIF).<\/p>\n<p>DEFLATE, \u043f\u0440\u0438\u043c\u0435\u043d\u0451\u043d\u043d\u044b\u0439 \u0432 PNG, \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u0443\u0435\u0442 \u0434\u0432\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u0430: \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0425\u0430\u0444\u0444\u043c\u0430\u043d\u0430 \u0438 \u0441\u0436\u0430\u0442\u0438\u0435 LZ77. LZ77 \u0438\u0449\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 \u0438\u0445 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438 \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f, \u0430 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430 \u0425\u0430\u0444\u0444\u043c\u0430\u043d\u0430 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u043a\u043e\u0434\u044b \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0449\u0438\u043c\u0441\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c. \u042d\u0442\u043e \u043a\u0430\u043a \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c \u0447\u0435\u043c\u043e\u0434\u0430\u043d: LZ77 \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u0445\u043e\u0436\u0438\u0435 \u0432\u0435\u0449\u0438 \u0432\u043c\u0435\u0441\u0442\u0435, \u0430 \u0425\u0430\u0444\u0444\u043c\u0430\u043d \u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u043b\u0438\u0448\u043d\u0438\u0435 \u0431\u0438\u0440\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0451 \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u043e \u043c\u0435\u043d\u044c\u0448\u0435 \u043c\u0435\u0441\u0442\u0430. DEFLATE \u043e\u0431\u044b\u0447\u043d\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043b\u0443\u0447\u0448\u0435\u0435 \u0441\u0436\u0430\u0442\u0438\u0435 (\u043d\u0430 10\u201320% \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0435\u0435 LZW \u0434\u043b\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439) \u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043f\u0430\u0442\u0435\u043d\u0442\u043d\u044b\u0445 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439, \u0447\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b\u043e \u0435\u0433\u043e \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u0434\u043b\u044f PNG (PNG FAQ).<\/p>\n<p>PNG \u043f\u0440\u0435\u0432\u0437\u043e\u0448\u0451\u043b GIF \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0430 \u2014 \u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 \u043d\u0430 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u043c \u0444\u043e\u043d\u0435 \u2014 GIF \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u043b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0446\u0432\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u043c, \u0447\u0442\u043e \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043b\u043e \u043a \u0440\u0432\u0430\u043d\u044b\u043c \u043a\u0440\u0430\u044f\u043c. PNG \u0441 \u0430\u043b\u044c\u0444\u0430-\u043a\u0430\u043d\u0430\u043b\u043e\u043c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u043b \u043f\u043b\u0430\u0432\u043d\u0443\u044e \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u044f \u044d\u0444\u0444\u0435\u043a\u0442 \u0441\u0442\u0435\u043a\u043b\u0430, \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b 24-\u0431\u0438\u0442\u043d\u044b\u0435 \u0446\u0432\u0435\u0442\u0430, \u0447\u0442\u043e \u0434\u0430\u0432\u0430\u043b\u043e \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u043e\u0442\u0442\u0435\u043d\u043a\u043e\u0432 \u0432\u043c\u0435\u0441\u0442\u043e 256. DEFLATE \u0442\u0430\u043a\u0436\u0435 \u0441\u0436\u0438\u043c\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0435\u0435, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e. \u042d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b\u043e PNG \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u043c \u0434\u043b\u044f \u0432\u0435\u0431-\u0433\u0440\u0430\u0444\u0438\u043a\u0438, \u0442\u0430\u043a\u043e\u0439 \u043a\u0430\u043a \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u044b \u043d\u0430 \u0441\u0430\u0439\u0442\u0430\u0445 Yahoo \u0438\u043b\u0438 Netscape \u0432 90-\u0445 (PNG Introduction).<\/p>\n<p>PNG \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043b \u0447\u0435\u0440\u0435\u0437 \u0442\u0440\u0438 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438. \u041f\u0435\u0440\u0432\u0430\u044f (1996) \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b\u0430 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c\u044e (W3C PNG Specification (First Edition, 1996)). \u0412\u0442\u043e\u0440\u0430\u044f (2003) \u0443\u043b\u0443\u0447\u0448\u0438\u043b\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0446\u0432\u0435\u0442\u0430\u043c\u0438 \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 UTF-8 (W3C PNG Specification (Second Edition, 2003)). \u0422\u0440\u0435\u0442\u044c\u044f (2025) \u0432\u0432\u0435\u043b\u0430 HDR, \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 (APNG) \u0438 EXIF-\u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435, \u0441\u0434\u0435\u043b\u0430\u0432 PNG \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u043c \u0434\u043b\u044f \u0432\u0435\u0431-\u0434\u0438\u0437\u0430\u0439\u043d\u0430, \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0438 \u0438\u0433\u0440 (W3C PNG Specification (Third Edition, 2025)). \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u043a\u0430\u0436\u0435\u0442, \u043a\u0430\u043a PNG \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0440\u0438\u043c\u0435\u0440 \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0430 \u2014 \u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430, \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u0432 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e, \u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0442 Python-\u043a\u043e\u0434 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0430\u043a\u0438\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u0447\u0442\u043e\u0431\u044b \u043b\u044e\u0431\u043e\u0439 \u043c\u043e\u0433 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 PNG.<\/p>\n<h3>\u041f\u0435\u0440\u0432\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f (1996): \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u043b\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439<\/h3>\n<p>\u041a\u043e\u0433\u0434\u0430 \u0432 1996 \u0433\u043e\u0434\u0443 \u0444\u043e\u0440\u043c\u0430\u0442 PNG (Portable Network Graphics) \u0431\u044b\u043b \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d \u043a\u043e\u043d\u0441\u043e\u0440\u0446\u0438\u0443\u043c\u043e\u043c W3C, \u043e\u043d \u0441\u0442\u0430\u043b \u043e\u0442\u0432\u0435\u0442\u043e\u043c \u043d\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044c \u0432 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0439 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0435 GIF, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u043c\u0443 \u043f\u0430\u0442\u0435\u043d\u0442\u0430\u043c\u0438 \u043d\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c LZW (W3C PNG Specification (First Edition, 1996)). \u041f\u0435\u0440\u0432\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f PNG \u0431\u044b\u043b\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u0438, \u0441\u0436\u0430\u0442\u0438\u044f \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c \u0438 \u0448\u0438\u0440\u043e\u043a\u043e\u0433\u043e \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 \u0446\u0432\u0435\u0442\u043e\u0432. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 PNG \u043a\u0430\u043a \u043a\u043e\u0440\u043e\u0431\u043a\u0443 \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u2014 \u044d\u0442\u043e \u043a\u0443\u0441\u043e\u0447\u0435\u043a \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0449\u0438\u0439 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443. \u042d\u0442\u0438 \u043a\u0443\u0441\u043e\u0447\u043a\u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0447\u0430\u043d\u043a\u0430\u043c\u0438, \u0438 \u0432 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c, \u043a\u0430\u043a \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0430 \u2014 \u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 50 x 50 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u043d\u0430 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u043c \u0444\u043e\u043d\u0435 100 x 100 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439.<\/p>\n<h4>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 PNG: \u0447\u0430\u043d\u043a\u0438 \u043a\u0430\u043a \u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438<\/h4>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/af6\/74f\/462\/af674f462bf9b8c64da6cf8d93930b18.jpg\" width=\"800\" height=\"540\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/af6\/74f\/462\/af674f462bf9b8c64da6cf8d93930b18.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/af6\/74f\/462\/af674f462bf9b8c64da6cf8d93930b18.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>PNG-\u0444\u0430\u0439\u043b \u2014 \u044d\u0442\u043e \u043a\u0430\u043a \u043f\u0430\u0437\u043b, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u0443\u0441\u043e\u0447\u0435\u043a (\u0447\u0430\u043d\u043a) \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0441\u0432\u043e\u044e \u0447\u0430\u0441\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0427\u0430\u043d\u043a\u0438 \u2014 \u044d\u0442\u043e \u0431\u043b\u043e\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0435, \u0446\u0432\u0435\u0442\u0430\u0445, \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u0438 \u0438\u043b\u0438 \u0441\u0430\u043c\u0438\u0445 \u043f\u0438\u043a\u0441\u0435\u043b\u044f\u0445. \u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438 PNG, \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0432 1996 \u0433\u043e\u0434\u0443, \u0431\u044b\u043b\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0447\u0430\u043d\u043a\u0438, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 (PNG: The Definitive Guide, Chapter 7). \u0412\u043e\u0442 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0447\u0430\u043d\u043a\u0438 \u0438 \u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p><strong>IHDR (Image Header)<\/strong>: \u044d\u0442\u043e \u043a\u0430\u043a \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f, \u0433\u0434\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043e, \u043a\u0430\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0438 \u043a\u0430\u043a \u0435\u0451 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c. IHDR \u0437\u0430\u0434\u0430\u0451\u0442 \u0448\u0438\u0440\u0438\u043d\u0443, \u0432\u044b\u0441\u043e\u0442\u0443, \u0433\u043b\u0443\u0431\u0438\u043d\u0443 \u0446\u0432\u0435\u0442\u0430, \u0442\u0438\u043f \u0446\u0432\u0435\u0442\u0430, \u043c\u0435\u0442\u043e\u0434 \u0441\u0436\u0430\u0442\u0438\u044f (\u0432\u0441\u0435\u0433\u0434\u0430 DEFLATE), \u043c\u0435\u0442\u043e\u0434 \u0444\u0438\u043b\u044c\u0442\u0440\u0430 (\u043e\u0431\u044b\u0447\u043d\u043e 0) \u0438 \u043c\u0435\u0442\u043e\u0434 \u0447\u0435\u0440\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f (0 \u0434\u043b\u044f \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u0447\u0435\u0440\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f).<\/p>\n<\/li>\n<li>\n<p><strong>PLTE (Palette)<\/strong>: \u0435\u0441\u043b\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0446\u0432\u0435\u0442\u043e\u0432 (\u0434\u043e 256), PLTE \u0445\u0440\u0430\u043d\u0438\u0442 \u043f\u0430\u043b\u0438\u0442\u0440\u0443 \u043a\u0430\u043a \u043a\u043e\u0440\u043e\u0431\u043a\u0443 \u0441 \u043a\u0440\u0430\u0441\u043a\u0430\u043c\u0438, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u0430\u044f \u043a\u0440\u0430\u0441\u043a\u0430 \u2014 \u044d\u0442\u043e \u0442\u0440\u0438 \u0431\u0430\u0439\u0442\u0430 (R, G, B).<\/p>\n<\/li>\n<li>\n<p><strong>tRNS (Transparency)<\/strong>: \u2014 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0444\u043e\u043d, \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u043b\u0438 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u043c\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>bKGD (Background)<\/strong>: \u0437\u0430\u0434\u0430\u0451\u0442 \u0446\u0432\u0435\u0442 \u0444\u043e\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439.<\/p>\n<\/li>\n<li>\n<p><strong>IDAT (Image Data)<\/strong>: \u044d\u0442\u043e \u0441\u0435\u0440\u0434\u0446\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0441\u0436\u0430\u0442\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c DEFLATE.<\/p>\n<\/li>\n<li>\n<p><strong>IEND (Image End)<\/strong>: \u043f\u0443\u0441\u0442\u043e\u0439 \u0447\u0430\u043d\u043a, \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0438\u0439 \u043a\u043e\u043d\u0435\u0446 \u0444\u0430\u0439\u043b\u0430, \u043a\u0430\u043a \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043a\u043d\u0438\u0433\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0430 \u2014 \u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 200 x 200 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u043d\u0430 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u043c \u0444\u043e\u043d\u0435 400 x 400 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u2014 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0444\u0430\u0439\u043b\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<ul>\n<li>\n<p><strong>IHDR<\/strong>: \u0448\u0438\u0440\u0438\u043d\u0430 = 400, \u0432\u044b\u0441\u043e\u0442\u0430 = 400, \u0433\u043b\u0443\u0431\u0438\u043d\u0430 \u0446\u0432\u0435\u0442\u0430 = 8 \u0431\u0438\u0442, \u0442\u0438\u043f \u0446\u0432\u0435\u0442\u0430 = 6 (RGBA), \u043c\u0435\u0442\u043e\u0434 \u0441\u0436\u0430\u0442\u0438\u044f = 0, \u043c\u0435\u0442\u043e\u0434 \u0444\u0438\u043b\u044c\u0442\u0440\u0430 = 0, \u043c\u0435\u0442\u043e\u0434 \u0447\u0435\u0440\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f = 0.<\/p>\n<\/li>\n<li>\n<p><strong>tRNS<\/strong>: \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439 \u0444\u043e\u043d (\u0430\u043b\u044c\u0444\u0430-\u043a\u0430\u043d\u0430\u043b = 0 \u0434\u043b\u044f \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0444\u043e\u043d\u0430).<\/p>\n<\/li>\n<li>\n<p><strong>IDAT<\/strong>: \u0441\u0436\u0430\u0442\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 (\u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442: R = 255, G = 0, B = 0, A = 255; \u0444\u043e\u043d: A = 0).<\/p>\n<\/li>\n<li>\n<p><strong>IEND<\/strong>: \u043a\u043e\u043d\u0435\u0446 \u0444\u0430\u0439\u043b\u0430.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0426\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u0442\u0438\u043f\u044b \u0438 \u0433\u043b\u0443\u0431\u0438\u043d\u0430 \u0446\u0432\u0435\u0442\u0430<\/h4>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e70\/4d1\/df7\/e704d1df7d28052172b2c411dac13f3b.jpg\" width=\"570\" height=\"450\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/e70\/4d1\/df7\/e704d1df7d28052172b2c411dac13f3b.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e70\/4d1\/df7\/e704d1df7d28052172b2c411dac13f3b.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>PNG \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0446\u0432\u0435\u0442\u043e\u0432, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0435\u0433\u043e \u0433\u0438\u0431\u043a\u0438\u043c \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 (PNG FAQ). \u041f\u0435\u0440\u0432\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0430 \u043f\u044f\u0442\u044c \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432:<\/p>\n<ul>\n<li>\n<p><strong>\u0422\u0438\u043f 0 (Grayscale)<\/strong>: \u0447\u0451\u0440\u043d\u043e-\u0431\u0435\u043b\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u2014 \u044d\u0442\u043e \u043e\u0442\u0442\u0435\u043d\u043e\u043a \u0441\u0435\u0440\u043e\u0433\u043e. \u0413\u043b\u0443\u0431\u0438\u043d\u0430 \u0446\u0432\u0435\u0442\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c 1, 2, 4, 8 \u0438\u043b\u0438 16 \u0431\u0438\u0442, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0442 2 \u0434\u043e 65 536 \u043e\u0442\u0442\u0435\u043d\u043a\u043e\u0432 \u0441\u0435\u0440\u043e\u0433\u043e.<\/p>\n<\/li>\n<li>\n<p><strong>\u0422\u0438\u043f 2 (RGB)<\/strong>: \u043f\u043e\u043b\u043d\u043e\u0446\u0432\u0435\u0442\u043d\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e, \u0437\u0435\u043b\u0451\u043d\u043e\u0433\u043e \u0438 \u0441\u0438\u043d\u0435\u0433\u043e \u043a\u0430\u043d\u0430\u043b\u043e\u0432 (8 \u0438\u043b\u0438 16 \u0431\u0438\u0442 \u043d\u0430 \u043a\u0430\u043d\u0430\u043b).<\/p>\n<\/li>\n<li>\n<p><strong>\u0422\u0438\u043f 3 (Indexed)<\/strong>: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043f\u0430\u043b\u0438\u0442\u0440\u0443 \u0434\u043e 256 \u0446\u0432\u0435\u0442\u043e\u0432, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0438\u043d\u0434\u0435\u043a\u0441 \u0432 \u043f\u0430\u043b\u0438\u0442\u0440\u0435 PLTE. \u0413\u043b\u0443\u0431\u0438\u043d\u0430 \u0446\u0432\u0435\u0442\u0430 \u2014 1, 2, 4 \u0438\u043b\u0438 8 \u0431\u0438\u0442.<\/p>\n<\/li>\n<li>\n<p><strong>\u0422\u0438\u043f 4 (Grayscale with Alpha)<\/strong>: \u0441\u0435\u0440\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441 \u0430\u043b\u044c\u0444\u0430-\u043a\u0430\u043d\u0430\u043b\u043e\u043c \u0434\u043b\u044f \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u0438, 8 \u0438\u043b\u0438 16 \u0431\u0438\u0442 \u043d\u0430 \u043a\u0430\u043d\u0430\u043b.<\/p>\n<\/li>\n<li>\n<p><strong>\u0422\u0438\u043f 6 (RGBA)<\/strong>: \u043f\u043e\u043b\u043d\u043e\u0446\u0432\u0435\u0442\u043d\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441 \u0430\u043b\u044c\u0444\u0430-\u043a\u0430\u043d\u0430\u043b\u043e\u043c, 8 \u0438\u043b\u0438 16 \u0431\u0438\u0442 \u043d\u0430 \u043a\u0430\u043d\u0430\u043b.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0442\u0438\u043f 6 (RGBA, 8 \u0431\u0438\u0442), \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u2014 \u044d\u0442\u043e 4 \u0431\u0430\u0439\u0442\u0430: \u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u00ae, \u0437\u0435\u043b\u0451\u043d\u044b\u0439 (G), \u0441\u0438\u043d\u0438\u0439 (B) \u0438 \u0430\u043b\u044c\u0444\u0430 (A). \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f (255, 0, 0, 255) \u2014 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0435\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439 \u043a\u0440\u0430\u0441\u043d\u044b\u0439, \u0430 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u0444\u043e\u043d\u0430 \u2014 (0, 0, 0, 0) \u2014 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439. \u0412 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u0441 GIF, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d 256 \u0446\u0432\u0435\u0442\u0430\u043c\u0438 \u0438 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c\u044e (\u0446\u0432\u0435\u0442 \u043b\u0438\u0431\u043e \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439, \u043b\u0438\u0431\u043e \u043d\u0435\u0442), PNG \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043f\u043b\u0430\u0432\u043d\u0443\u044e \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u0438 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0446\u0432\u0435\u0442\u043e\u0432 (16,7 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430 \u0434\u043b\u044f 24-\u0431\u0438\u0442\u043d\u043e\u0433\u043e RGB), \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0435\u0433\u043e \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u0434\u043b\u044f \u0432\u0435\u0431-\u0433\u0440\u0430\u0444\u0438\u043a\u0438 (Linux Journal: PNG \u2014 A Replacement for GIF).<\/p>\n<h4>\u041f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u0438 \u0441\u0436\u0430\u0442\u0438\u0435 \u0432 PNG<\/h4>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b1e\/b16\/cfb\/b1eb16cfbff38676b2d0f5ad74f30673.jpg\" alt=\"3\" title=\"3\" width=\"640\" height=\"290\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/b1e\/b16\/cfb\/b1eb16cfbff38676b2d0f5ad74f30673.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b1e\/b16\/cfb\/b1eb16cfbff38676b2d0f5ad74f30673.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>3<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0442\u0438\u043f 6 (RGBA, 8 \u0431\u0438\u0442), \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u2014 \u044d\u0442\u043e 4 \u0431\u0430\u0439\u0442\u0430: \u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u00ae, \u0437\u0435\u043b\u0451\u043d\u044b\u0439 (G), \u0441\u0438\u043d\u0438\u0439 (B) \u0438 \u0430\u043b\u044c\u0444\u0430 (A). \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f (255, 0, 0, 255) \u2014 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0435\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439 \u043a\u0440\u0430\u0441\u043d\u044b\u0439, \u0430 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u0444\u043e\u043d\u0430 \u2014 (0, 0, 0, 0) \u2014 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439. \u0412 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u0441 GIF, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d 256 \u0446\u0432\u0435\u0442\u0430\u043c\u0438 \u0438 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c\u044e (\u0446\u0432\u0435\u0442 \u043b\u0438\u0431\u043e \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439, \u043b\u0438\u0431\u043e \u043d\u0435\u0442), PNG \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043f\u043b\u0430\u0432\u043d\u0443\u044e \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u0438 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0446\u0432\u0435\u0442\u043e\u0432 (16,7 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430 \u0434\u043b\u044f 24-\u0431\u0438\u0442\u043d\u043e\u0433\u043e RGB), \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0435\u0433\u043e \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u0434\u043b\u044f \u0432\u0435\u0431-\u0433\u0440\u0430\u0444\u0438\u043a\u0438 (Linux Journal: PNG \u2014 A Replacement for GIF).<\/p>\n<p>\u0421\u0436\u0430\u0442\u0438\u0435 \u0432 PNG \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043e \u043d\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435 DEFLATE, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 LZ77 \u0438 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0443 \u0425\u0430\u0444\u0444\u043c\u0430\u043d\u0430. LZ77 \u0438\u0449\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 \u0438\u0445 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438 \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f, \u0430 \u0425\u0430\u0444\u0444\u043c\u0430\u043d \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u043a\u043e\u0434\u044b \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0449\u0438\u043c\u0441\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c. \u0414\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0430 DEFLATE \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0441\u0436\u0438\u043c\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0433\u043e \u0444\u043e\u043d\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u0438\u0437 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 (0, 0, 0, 0). \u0412 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u0441 LZW, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u043c \u0432 GIF, DEFLATE \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043d\u0430 10\u201320% \u043b\u0443\u0447\u0448\u0435\u0435 \u0441\u0436\u0430\u0442\u0438\u0435 \u0434\u043b\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u043e\u0434\u043d\u043e\u0442\u043e\u043d\u043d\u044b\u043c\u0438 \u043e\u0431\u043b\u0430\u0441\u0442\u044f\u043c\u0438, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e (PNG Introduction).<\/p>\n<h4>\u041f\u0440\u0438\u043c\u0435\u0440: \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438 \u0440\u0430\u0437\u0431\u043e\u0440 PNG-\u0444\u0430\u0439\u043b\u0430<\/h4>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u0430\u0448 \u043b\u043e\u0433\u043e\u0442\u0438\u043f \u2014 \u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442 200&#215;200 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u043d\u0430 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u043c \u0444\u043e\u043d\u0435 400&#215;400 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u2014 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Python \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Pillow. \u042d\u0442\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u043a\u0430\u0436\u0435\u0442, \u043a\u0430\u043a \u0437\u0430\u0434\u0430\u0442\u044c \u0446\u0432\u0435\u0442 \u0438 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c, \u0430 \u0437\u0430\u0442\u0435\u043c \u043c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0444\u0430\u0439\u043b\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 pypng.<\/p>\n<p><strong>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 PNG \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Pillow<\/strong>:<\/p>\n<pre><code class=\"python\"> from PIL import Image  # \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 400x400 \u0441 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u043c \u0444\u043e\u043d\u043e\u043c img = Image.new('RGBA',  (400,  400),  (0,  0,  0,  0))  # \u041f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439 \u0444\u043e\u043d # \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442 200x200 \u0432 \u0446\u0435\u043d\u0442\u0440\u0435 square = Image.new('RGBA',  (200,  200),  (255,  0,  0,  255))  # \u041a\u0440\u0430\u0441\u043d\u044b\u0439, \u043d\u0435\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439 img.paste(square,  (100,  100))  # \u0420\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u043c \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u0432 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u0445 (100, 100) img.save('out\/red_square.png') <\/code><\/pre>\n<p>\u042d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 PNG-\u0444\u0430\u0439\u043b \u0441 \u043a\u0440\u0430\u0441\u043d\u044b\u043c \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u043c. \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0444\u0430\u0439\u043b\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c:<\/p>\n<ul>\n<li>\n<p><strong>IHDR<\/strong>: \u0448\u0438\u0440\u0438\u043d\u0430 = 400, \u0432\u044b\u0441\u043e\u0442\u0430 = 400, \u0433\u043b\u0443\u0431\u0438\u043d\u0430 = 8 \u0431\u0438\u0442, \u0442\u0438\u043f = 6 (RGBA).<\/p>\n<\/li>\n<li>\n<p><strong>tRNS<\/strong>: \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439 \u0444\u043e\u043d (\u0430\u043b\u044c\u0444\u0430 = 0).<\/p>\n<\/li>\n<li>\n<p><strong>IDAT<\/strong>: \u0441\u0436\u0430\u0442\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439, \u0433\u0434\u0435 \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u2014 (255, 0, 0, 255), \u0430 \u0444\u043e\u043d \u2014 (0, 0, 0, 0).<\/p>\n<\/li>\n<li>\n<p><strong>IEND<\/strong>: \u043a\u043e\u043d\u0435\u0446 \u0444\u0430\u0439\u043b\u0430.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0420\u0430\u0437\u0431\u043e\u0440 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e pypng<\/strong>:<\/p>\n<pre><code class=\"python\">import png   # \u0427\u0442\u0435\u043d\u0438\u0435 PNG-\u0444\u0430\u0439\u043b\u0430 reader = png.Reader(filename='out\/red_square.png') png_data = reader.read() print(\"IHDR:\", png_data[3])  # \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 for chunk_type, chunk_data in reader.chunks(): print(f\"Chunk: {chunk_type}, Length: {len(chunk_data)} bytes\") <\/code><\/pre>\n<p>\u042d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0444\u0430\u0439\u043b\u0430:<\/p>\n<pre><code class=\"bash\">IHDR: {'greyscale': False, 'alpha': True, 'planes': 4, 'bitdepth': 8, 'interlace': 0, 'size': (400, 400)} Chunk: b'IDAT', Length: 1056 bytes Chunk: b'IEND', Length: 0 bytes<\/code><\/pre>\n<p>\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044f, \u043a\u0430\u043a\u0438\u0435 \u0447\u0430\u043d\u043a\u0438 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0438 \u0438\u0445 \u0440\u0430\u0437\u043c\u0435\u0440. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0430 \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435 IHDR, IDAT \u0438 IEND, \u0430 tRNS \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0434\u043b\u044f \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u0438. \u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438\u0437 PNG Suite (PNG Suite) \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044e\u0442, \u0447\u0442\u043e \u0442\u0430\u043a\u0438\u0435 \u0444\u0430\u0439\u043b\u044b \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u0445, \u0441 \u043f\u043b\u0430\u0432\u043d\u043e\u0439 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u0444\u043e\u043d\u0435.<\/p>\n<h4>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0432\u043e\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438<\/h4>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f PNG \u0431\u044b\u043b\u0430 \u043c\u043e\u0449\u043d\u044b\u043c \u0448\u0430\u0433\u043e\u043c \u0432\u043f\u0435\u0440\u0451\u0434 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 GIF, \u043d\u043e \u0438\u043c\u0435\u043b\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f:<\/p>\n<ul>\n<li>\n<p><strong>\u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438<\/strong>: PNG \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 GIF, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0433 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u0438\u0433\u0430\u044e\u0449\u0438\u0435 \u0431\u0430\u043d\u043d\u0435\u0440\u044b.<\/p>\n<\/li>\n<li>\n<p><strong>\u041d\u0435\u0442 HDR<\/strong>: \u0413\u043b\u0443\u0431\u0438\u043d\u0430 \u0446\u0432\u0435\u0442\u0430 (8 \u0438\u043b\u0438 16 \u0431\u0438\u0442 \u043d\u0430 \u043a\u0430\u043d\u0430\u043b) \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u043c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u043e\u043c, \u043a\u0430\u043a \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0434\u0438\u0441\u043f\u043b\u0435\u044f\u0445.<\/p>\n<\/li>\n<li>\n<p><strong>\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435<\/strong>: \u0427\u0430\u043d\u043a\u0438 tEXt \u0438 zTXt \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0430\u0432\u0442\u043e\u0440 \u0438\u043b\u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435, \u043d\u043e \u043d\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, EXIF \u0434\u043b\u044f \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439.<\/p>\n<\/li>\n<\/ul>\n<p>\u042d\u0442\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0434\u0435\u043b\u0430\u043b\u0438 PNG \u043d\u0435\u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u043c \u0434\u043b\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0439 \u0438\u043b\u0438 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u043d\u043e \u043e\u043d \u0431\u044b\u043b \u0438\u0434\u0435\u0430\u043b\u0435\u043d \u0434\u043b\u044f \u0432\u0435\u0431-\u0433\u0440\u0430\u0444\u0438\u043a\u0438, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u044b \u0438 \u0438\u043a\u043e\u043d\u043a\u0438, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u0438 \u0438 \u0441\u0436\u0430\u0442\u0438\u044e.<\/p>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f PNG \u0437\u0430\u043b\u043e\u0436\u0438\u043b\u0430 \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0432\u0435\u0431-\u0434\u0438\u0437\u0430\u0439\u043d\u0430 \u043a\u043e\u043d\u0446\u0430 90-\u0445. \u0415\u0451 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u0445, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Internet Explorer 4.0, \u0441\u0434\u0435\u043b\u0430\u043b\u0430 PNG \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u043c \u0434\u043b\u044f \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u043e\u0432 \u0438 \u0438\u043a\u043e\u043d\u043e\u043a \u0441 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u043c \u0444\u043e\u043d\u043e\u043c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043b\u043e\u0433\u043e\u0442\u0438\u043f Yahoo \u0432 1997 \u0433\u043e\u0434\u0443 \u043c\u043e\u0433 \u0431\u044b\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d \u0432 PNG, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0433\u043b\u0430\u0434\u043a\u043e \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u0444\u043e\u043d\u0435 \u0441\u0430\u0439\u0442\u0430. \u041f\u0435\u0440\u0432\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u043e\u0437\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043e\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 GIF \u043a \u0431\u043e\u043b\u0435\u0435 \u0433\u0438\u0431\u043a\u043e\u043c\u0443 \u0444\u043e\u0440\u043c\u0430\u0442\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u043b \u043b\u0443\u0447\u0448\u0435\u0435 \u0441\u0436\u0430\u0442\u0438\u0435 \u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e. \u042d\u0442\u043e\u0442 \u0440\u0430\u0437\u0434\u0435\u043b \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f \u043a \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f\u043c\u0438, \u0433\u0434\u0435 \u0431\u044b\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044f \u0438 HDR.<\/p>\n<h3>\u0412\u0442\u043e\u0440\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f (2003): \u0443\u043c\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0441 \u0442\u043e\u0447\u043d\u044b\u043c\u0438 \u0446\u0432\u0435\u0442\u0430\u043c\u0438<\/h3>\n<p>\u0412\u0442\u043e\u0440\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f PNG, \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043d\u0430\u044f W3C 10 \u043d\u043e\u044f\u0431\u0440\u044f 2003 \u0433\u043e\u0434\u0430, \u0441\u0434\u0435\u043b\u0430\u043b\u0430 \u0444\u043e\u0440\u043c\u0430\u0442 \u0431\u043e\u043b\u0435\u0435 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u043c, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0446\u0432\u0435\u0442\u043e\u043c \u0438 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 (W3C PNG Specification (Second Edition, 2003)). \u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0432\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f PNG \u0431\u044b\u043b\u0430 \u0431\u0430\u0437\u043e\u0432\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0441 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c\u044e, \u0442\u043e \u0432\u0442\u043e\u0440\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u0443\u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0430 \u0435\u0433\u043e, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0442\u043e\u0447\u043d\u043e\u0439 \u0446\u0432\u0435\u0442\u043e\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0438 \u0438\u043d\u0442\u0435\u0440\u043d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0435\u043a\u0441\u0442\u043e\u0432. \u042d\u0442\u043e \u043a\u0430\u043a \u0435\u0441\u043b\u0438 \u0431\u044b \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043d\u043e\u0432\u044b\u0435 \u043a\u0440\u0430\u0441\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e \u043d\u0430 \u0432\u0441\u0435\u0445 \u044d\u043a\u0440\u0430\u043d\u0430\u0445, \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043c\u0438\u0440\u0430. \u0412 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u043d\u043e\u0432\u044b\u0435 \u0447\u0430\u043d\u043a\u0438 (iCCP, sRGB, iTXt), \u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0430 \u2014 \u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 200 x 200 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u043d\u0430 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u043c \u0444\u043e\u043d\u0435 400 x 400 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u2014 \u0438 \u043f\u043e\u043a\u0430\u0436\u0435\u043c, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Python.<\/p>\n<h4>\u041d\u043e\u0432\u044b\u0435 \u0447\u0430\u043d\u043a\u0438: iCCP, sRGB, iTXt<\/h4>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c62\/ece\/d57\/c62eced57904dab3b823dd9450ba6fb4.png\" width=\"867\" height=\"446\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/c62\/ece\/d57\/c62eced57904dab3b823dd9450ba6fb4.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c62\/ece\/d57\/c62eced57904dab3b823dd9450ba6fb4.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0412\u0442\u043e\u0440\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f PNG \u0432\u0432\u0435\u043b\u0430 \u0442\u0440\u0438 \u043d\u043e\u0432\u044b\u0445 \u0447\u0430\u043d\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 (PNG: The Definitive Guide, Chapter 7):<\/p>\n<ul>\n<li>\n<p><strong>iCCP (Embedded ICC Profile)<\/strong>: \u042d\u0442\u043e\u0442 \u0447\u0430\u043d\u043a \u0445\u0440\u0430\u043d\u0438\u0442 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0446\u0432\u0435\u0442\u0430 \u043f\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0443 ICC (International Color Consortium), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a \u0434\u043e\u043b\u0436\u043d\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u0446\u0432\u0435\u0442\u0430 \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u044b, \u043f\u0440\u0438\u043d\u0442\u0435\u0440\u044b \u0438\u043b\u0438 \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u044b. \u0411\u0435\u0437 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0444\u0438\u043b\u044f \u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u0446\u0432\u0435\u0442 \u0432 \u043d\u0430\u0448\u0435\u043c \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0435 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u043c \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u044d\u043a\u0440\u0430\u043d\u0435 \u0438 \u0431\u043e\u0440\u0434\u043e\u0432\u044b\u043c \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c. iCCP \u0440\u0435\u0448\u0430\u0435\u0442 \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0446\u0432\u0435\u0442\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>sRGB (Standard RGB)<\/strong>: \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e sRGB, \u0448\u0438\u0440\u043e\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0435 \u0432 \u0432\u0435\u0431-\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u0445 \u0438 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445. \u042d\u0442\u043e \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0446\u0432\u0435\u0442\u043e\u0432, \u0442\u0430\u043a \u043a\u0430\u043a \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0434\u043b\u044f sRGB.<\/p>\n<\/li>\n<li>\n<p><strong>iTXt (International Text)<\/strong>: \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 UTF-8, \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0441\u0436\u0430\u0442\u0438\u044f \u0438 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0445 \u0442\u0435\u0433\u043e\u0432. \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0447\u0430\u043d\u043a\u043e\u0432 tEXt \u0438 zTXt \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438, iTXt \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0442\u0435\u043a\u0441\u0442\u044b \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u044f\u0437\u044b\u043a\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u0438\u043b\u0438 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u043c, \u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u0436\u0430\u0442 \u0434\u043b\u044f \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u043c\u0435\u0441\u0442\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435, \u0447\u0442\u043e iCCP \u0438 sRGB \u2014 \u044d\u0442\u043e \u043a\u0430\u043a \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u0445\u0443\u0434\u043e\u0436\u043d\u0438\u043a\u0430, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u043e\u0442\u0442\u0435\u043d\u043a\u0438 \u043a\u0440\u0430\u0441\u043e\u043a, \u0430 iTXt \u2014 \u044d\u0442\u043e \u0437\u0430\u043f\u0438\u0441\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u044f\u0437\u044b\u043a\u0435, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u043b \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0438\u043b\u0438 \u0447\u0442\u043e \u043e\u043d\u0430 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442.<\/p>\n<h4>\u0423\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0446\u0432\u0435\u0442\u043e\u043c<\/h4>\n<p>\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0446\u0432\u0435\u0442\u043e\u043c \u0441\u0442\u0430\u043b\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435\u043c \u0432\u0442\u043e\u0440\u043e\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438. \u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438 (1996) PNG \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043b \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0434\u043e\u043b\u0436\u043d\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u0446\u0432\u0435\u0442\u0430 \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445, \u0447\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043b\u043e \u043a \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f\u043c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u0432 \u043d\u0430\u0448\u0435\u043c \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0435 (R=255, G=0, B=0) \u043c\u043e\u0433 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443 \u043d\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0435 \u0438 \u0432 \u043f\u0435\u0447\u0430\u0442\u0438 \u0438\u0437-\u0437\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0444\u0438\u043b\u044f (Linux Journal: PNG \u2014 A Replacement for GIF). \u0427\u0430\u043d\u043a iCCP \u0440\u0435\u0448\u0430\u0435\u0442 \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043f\u0440\u043e\u0444\u0438\u043b\u044c ICC, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, sRGB \u0438\u043b\u0438 Adobe RGB. \u042d\u0442\u043e \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043e \u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u0446\u0432\u0435\u0442 \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u0445 Firefox, Safari \u0438\u043b\u0438 \u043d\u0430 \u043f\u0435\u0447\u0430\u0442\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435.<\/p>\n<p>\u0427\u0430\u043d\u043a sRGB \u2014 \u044d\u0442\u043e \u0443\u043f\u0440\u043e\u0449\u0451\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043e \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u043c \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 sRGB, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e\u043c \u0432\u0435\u0431-\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u0432 \u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. \u0414\u043b\u044f \u0432\u0435\u0431-\u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440\u043e\u0432 \u044d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u043b\u043e, \u0447\u0442\u043e \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u044b \u0438 \u0438\u043a\u043e\u043d\u043a\u0438, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0432 PNG, \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0431\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430\u0448 \u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u0441 sRGB \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e \u043d\u0430 \u0441\u0430\u0439\u0442\u0435, \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u043d\u0430 \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0435 \u0438\u043b\u0438 \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u0435, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432\u0430\u0436\u043d\u043e \u0434\u043b\u044f \u043c\u0435\u0436\u0434\u0443\u043d\u0430\u0440\u043e\u0434\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0432 2000-\u0445 \u0433\u043e\u0434\u0430\u0445.<\/p>\n<h4>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u0441 iTXt<\/h4>\n<p>\u0427\u0430\u043d\u043a iTXt \u0441\u0434\u0435\u043b\u0430\u043b PNG \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u043c \u0434\u043b\u044f \u043c\u0435\u0436\u0434\u0443\u043d\u0430\u0440\u043e\u0434\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438 \u0447\u0430\u043d\u043a\u0438 tEXt \u0438 zTXt \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 ISO 8859-1, \u0447\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u043b\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435-\u043b\u0430\u0442\u0438\u043d\u0441\u043a\u0438\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a \u043a\u0438\u0440\u0438\u043b\u043b\u0438\u0446\u0430 \u0438\u043b\u0438 \u0438\u0435\u0440\u043e\u0433\u043b\u0438\u0444\u044b. iTXt, \u043d\u0430\u043f\u0440\u043e\u0442\u0438\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 UTF-8, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u044b \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u044f\u0437\u044b\u043a\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u00ab\u0410\u0432\u0442\u043e\u0440: \u0418\u0432\u0430\u043d \u0418\u0432\u0430\u043d\u043e\u0432\u00bb \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u0438\u043b\u0438 \u00ab\u63cf\u8ff0: \u7ea2\u8272\u6b63\u65b9\u5f62\u00bb \u043d\u0430 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u043c. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, iTXt \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u0436\u0430\u0442\u0438\u0435 \u0438 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0435 \u0442\u0435\u0433\u0438, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0435, \u043d\u0430 \u043a\u0430\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0442\u0435\u043a\u0441\u0442 (PNG FAQ).<\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0430 iTXt \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a:<\/p>\n<ul>\n<li>\n<p>\u00abAuthor: Ivan Ivanov\u00bb (\u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c, \u0442\u0435\u0433 \u044f\u0437\u044b\u043a\u0430: en).<\/p>\n<\/li>\n<li>\n<p>\u00ab\u0410\u0432\u0442\u043e\u0440: \u0418\u0432\u0430\u043d \u0418\u0432\u0430\u043d\u043e\u0432\u00bb (\u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c, \u0442\u0435\u0433 \u044f\u0437\u044b\u043a\u0430: ru).<\/p>\n<\/li>\n<li>\n<p>\u00abCreated: 2003-11-10\u00bb (\u0434\u0430\u0442\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f).<\/p>\n<\/li>\n<\/ul>\n<p>\u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 PNG \u0443\u0434\u043e\u0431\u043d\u044b\u043c \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u0435\u0439, \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432 \u0438\u043b\u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0439, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u043c\u0435\u0436\u0434\u0443\u043d\u0430\u0440\u043e\u0434\u043d\u044b\u0445 \u0441\u0430\u0439\u0442\u043e\u0432 \u0438\u043b\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c.<\/p>\n<h4>\u041f\u0440\u0438\u043c\u0435\u0440: \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 PNG \u0441 iCCP \u0438 iTXt<\/h4>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0442\u043e\u0442 \u0436\u0435 \u043b\u043e\u0433\u043e\u0442\u0438\u043f \u2014 \u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442 200&#215;200 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u043d\u0430 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u043c \u0444\u043e\u043d\u0435 400&#215;400 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u2014 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043d\u043e\u0432\u044b\u0445 \u0447\u0430\u043d\u043a\u043e\u0432 \u0432\u0442\u043e\u0440\u043e\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438. \u041c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043f\u0440\u043e\u0444\u0438\u043b\u044c sRGB (\u0447\u0435\u0440\u0435\u0437 iCCP) \u0438 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 iTXt \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Python \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a Pillow \u0438 pypng.<\/p>\n<p><strong>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 PNG \u0441 iCCP \u0438 iTXt<\/strong>:<\/p>\n<pre><code class=\"python\">from PIL import Image, ImageCms, PngImagePlugin import png import numpy as np     # \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 400x400 \u0441 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u043c \u0444\u043e\u043d\u043e\u043c img = Image.new('RGBA',  (400,  400),  (0,  0,  0,  0))  # \u041f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439 \u0444\u043e\u043d square = Image.new('RGBA',  (200,  200),  (255,  0,  0,  255))  # \u041a\u0440\u0430\u0441\u043d\u044b\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442 img.paste(square,  (100,  100))  # \u0420\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u043c \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u0432 \u0446\u0435\u043d\u0442\u0440\u0435 profile = ImageCms.getOpenProfile(\"\/usr\/share\/color\/icc\/colord\/sRGB.icc\") img.save('out\/red_square_srgb.png',  icc_profile=profile.tobytes())  # \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c iTXt \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e pypng reader = png.Reader(filename='out\/red_square_srgb.png') width, height, rows, info = reader.read() # \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u0441\u0442\u0440\u043e\u043a \u0432 numpy-\u043c\u0430\u0441\u0441\u0438\u0432 rows_list =  list(rows) arr = np.vstack(rows_list).astype(np.uint8)  # \u0414\u043b\u044f RGBA \u043d\u0443\u0436\u043d\u043e reshape \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 channels = info['planes']  # \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, 4 \u0434\u043b\u044f RGBA arr = arr.reshape((height, width, channels))  # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 Pillow \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 mode =  'RGBA'  if channels ==  4  else  'RGB' img = Image.fromarray(arr,  mode=mode)  # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c iTXt meta = PngImagePlugin.PngInfo() meta.add_itxt(\"Author\",  \"Ivan Ivanov\",  lang=\"en\",  tkey=\"Author\")   # \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0432 \u043d\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b \u0441 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438 img.save('out\/red_square_itxt.png',  icc_profile=profile.tobytes(),  pnginfo=meta) <\/code><\/pre>\n<p>\u042d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 PNG-\u0444\u0430\u0439\u043b \u0441 \u043f\u0440\u043e\u0444\u0438\u043b\u0435\u043c sRGB (\u0447\u0435\u0440\u0435\u0437 iCCP) \u0438 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438 iTXt, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u043c\u0438 \u0430\u0432\u0442\u043e\u0440\u0430. \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0444\u0430\u0439\u043b\u0430 \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u043e\u0439:<\/p>\n<ul>\n<li>\n<p><strong>IHDR<\/strong>: \u0448\u0438\u0440\u0438\u043d\u0430 = 400, \u0432\u044b\u0441\u043e\u0442\u0430 = 400, \u0433\u043b\u0443\u0431\u0438\u043d\u0430 = 8 \u0431\u0438\u0442, \u0442\u0438\u043f = 6 (RGBA).<\/p>\n<\/li>\n<li>\n<p><strong>iCCP<\/strong>: \u043f\u0440\u043e\u0444\u0438\u043b\u044c sRGB \u0434\u043b\u044f \u0442\u043e\u0447\u043d\u043e\u0439 \u0446\u0432\u0435\u0442\u043e\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>iTXt<\/strong>: \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u00abAuthor: Ivan Ivanov\u00bb (\u044f\u0437\u044b\u043a: en).<\/p>\n<\/li>\n<li>\n<p><strong>IDAT<\/strong>: \u0441\u0436\u0430\u0442\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 (\u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442: R = 255, G = 0, B = 0, A = 255).<\/p>\n<\/li>\n<li>\n<p><strong>IEND<\/strong>: \u043a\u043e\u043d\u0435\u0446 \u0444\u0430\u0439\u043b\u0430.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0427\u0442\u0435\u043d\u0438\u0435 \u0447\u0430\u043d\u043a\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438<\/strong>:<\/p>\n<pre><code class=\"python\">import png  # \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435: pip install pypng  def read_png_metadata(filename):     reader = png.Reader(filename=filename)     chunks = reader.chunks()     for chunk_type, chunk_data in chunks:         print(f\"\u0422\u0438\u043f: {chunk_type}, \u0414\u043b\u0438\u043d\u0430: {len(chunk_data)}\")         if chunk_type == b'iTXt':             print(\";\".join(                 data for data in chunk_data.decode('latin1').split(\"\\x00\") if data                 ))  # \u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f read_png_metadata('out\/red_square_itxt.png') <\/code><\/pre>\n<p>\u042d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0444\u0430\u0439\u043b\u0430<\/p>\n<pre><code class=\"bash\">\u0422\u0438\u043f: b'IHDR', \u0414\u043b\u0438\u043d\u0430: 13 \u0422\u0438\u043f: b'iCCP', \u0414\u043b\u0438\u043d\u0430: 6817 \u0422\u0438\u043f: b'iTXt', \u0414\u043b\u0438\u043d\u0430: 30 Author;en;Author;Ivan Ivanov \u0422\u0438\u043f: b'IDAT', \u0414\u043b\u0438\u043d\u0430: 1056 \u0422\u0438\u043f: b'IEND', \u0414\u043b\u0438\u043d\u0430: 0<\/code><\/pre>\n<p>\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044f \u043d\u0430\u043b\u0438\u0447\u0438\u0435 iCCP \u0438 iTXt. \u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438\u0437 PNG Suite (PNG Suite) \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044e\u0442, \u0447\u0442\u043e \u0442\u0430\u043a\u0438\u0435 \u0444\u0430\u0439\u043b\u044b \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u0445, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Firefox 3.0 (2008), \u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u0446\u0432\u0435\u0442\u043e\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435\u0439.<\/p>\n<h4>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 \u043f\u0435\u0440\u0432\u043e\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0435\u0439<\/h4>\n<p>\u0412\u0442\u043e\u0440\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043b\u0443\u0447\u0448\u0438\u043b\u0430 PNG \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043f\u0435\u0440\u0432\u043e\u0439:<\/p>\n<ul>\n<li>\n<p><strong>\u0426\u0432\u0435\u0442\u043e\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430<\/strong>: iCCP \u0438 sRGB \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0446\u0432\u0435\u0442\u043e\u0432 \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432 1996 \u0433\u043e\u0434\u0443.<\/p>\n<\/li>\n<li>\n<p><strong>\u0418\u043d\u0442\u0435\u0440\u043d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/strong>: iTXt \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u044f\u0437\u044b\u043a\u0435, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u0445 tEXt\/zTXt.<\/p>\n<\/li>\n<li>\n<p><strong>\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c<\/strong>: \u0424\u0430\u0439\u043b\u044b \u0432\u0442\u043e\u0440\u043e\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438 \u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u043c\u0438, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u043c\u0438 \u043f\u0435\u0440\u0432\u0443\u044e \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044e, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u043e\u0432\u044b\u0435 \u0447\u0430\u043d\u043a\u0438 (iCCP, sRGB, iTXt) \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 (W3C PNG Specification (Second Edition, 2003)).<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0430 \u044d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c \u043e\u0442\u0442\u0435\u043d\u043a\u043e\u043c \u043d\u0430 \u0432\u0441\u0435\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445, \u0430 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0438\u043c\u044f \u0430\u0432\u0442\u043e\u0440\u0430, \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u0438\u043b\u0438 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u043c, \u0447\u0442\u043e \u0432\u0430\u0436\u043d\u043e \u0434\u043b\u044f \u043c\u0435\u0436\u0434\u0443\u043d\u0430\u0440\u043e\u0434\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432.<\/p>\n<h4>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0432\u0442\u043e\u0440\u043e\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438<\/h4>\n<p>\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f, \u0432\u0442\u043e\u0440\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u0438\u043c\u0435\u043b\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f:<\/p>\n<ul>\n<li>\n<p><strong>\u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438<\/strong>: \u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e PNG \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438. APNG, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0432 2004 \u0433\u043e\u0434\u0443, \u043e\u0441\u0442\u0430\u0432\u0430\u043b\u0441\u044f \u043d\u0435\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c (APNG Specification).<\/p>\n<\/li>\n<li>\n<p><strong>\u041d\u0435\u0442 HDR<\/strong>: \u0413\u043b\u0443\u0431\u0438\u043d\u0430 \u0446\u0432\u0435\u0442\u0430 (8 \u0438\u043b\u0438 16 \u0431\u0438\u0442 \u043d\u0430 \u043a\u0430\u043d\u0430\u043b) \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u043c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u043e\u043c.<\/p>\n<\/li>\n<li>\n<p><strong>\u041d\u0435\u0442 EXIF<\/strong>: \u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c\u0438 \u0447\u0430\u043d\u043a\u0430\u043c\u0438 (iTXt, tEXt, zTXt), \u0431\u0435\u0437 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a EXIF \u0434\u043b\u044f \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439.<\/p>\n<\/li>\n<\/ul>\n<p>\u042d\u0442\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0434\u0435\u043b\u0430\u043b\u0438 PNG \u043c\u0435\u043d\u0435\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u043c \u0434\u043b\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0439 \u0438\u043b\u0438 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u043d\u043e \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u0434\u043b\u044f \u0432\u0435\u0431-\u0434\u0438\u0437\u0430\u0439\u043d\u0430 \u0438 \u043f\u0435\u0447\u0430\u0442\u0438.<\/p>\n<p>\u0412\u0442\u043e\u0440\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f PNG \u0441\u0434\u0435\u043b\u0430\u043b\u0430 \u0444\u043e\u0440\u043c\u0430\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u043c \u0434\u043b\u044f \u0432\u0435\u0431-\u0434\u0438\u0437\u0430\u0439\u043d\u0430 \u0438 \u043f\u0435\u0447\u0430\u0442\u0438 \u0432 2000-\u0445 \u0433\u043e\u0434\u0430\u0445. \u0427\u0430\u043d\u043a\u0438 iCCP \u0438 sRGB \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u043b\u0438 \u0442\u043e\u0447\u043d\u0443\u044e \u0446\u0432\u0435\u0442\u043e\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u043e \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u043e\u0432 \u0438 \u0433\u0440\u0430\u0444\u0438\u043a\u0438, \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0449\u0438\u0445 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u0445, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Firefox \u0438 Safari, \u0438\u043b\u0438 \u043d\u0430 \u043f\u0435\u0447\u0430\u0442\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u0445. iTXt \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u043b \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043c\u0435\u0436\u0434\u0443\u043d\u0430\u0440\u043e\u0434\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u0434\u043f\u0438\u0441\u0435\u0439 \u043a \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0434\u043b\u044f \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0430\u0439\u0442\u043e\u0432 \u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u042d\u0442\u043e\u0442 \u0440\u0430\u0437\u0434\u0435\u043b \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f \u043a \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438, \u0433\u0434\u0435 \u0431\u044b\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 (APNG) \u0438 HDR.<\/p>\n<h3>\u0422\u0440\u0435\u0442\u044c\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f (2025): \u0420\u0435\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f<\/h3>\n<p>\u0422\u0440\u0435\u0442\u044c\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f PNG, \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043d\u0430\u044f W3C 24 \u0438\u044e\u043d\u044f 2025 \u0433\u043e\u0434\u0430, \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0430 \u0444\u043e\u0440\u043c\u0430\u0442 \u0432 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 HDR (High Dynamic Range), \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0432 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 APNG \u0438 \u0432\u043d\u0435\u0434\u0440\u0438\u0432 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 EXIF (W3C PNG Specification (Third Edition, 2025)). \u042d\u0442\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u0434\u0435\u043b\u0430\u043b\u0438 PNG \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u0434\u043b\u044f \u0432\u0435\u0431-\u0434\u0438\u0437\u0430\u0439\u043d\u0430, \u0438\u0433\u0440, \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0438 \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u0435\u0434\u0438\u0430. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 PNG \u043a\u0430\u043a \u0448\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u043a\u0438\u0439 \u043d\u043e\u0436 \u0434\u043b\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439: \u043e\u043d \u0442\u0435\u043f\u0435\u0440\u044c \u0443\u043c\u0435\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u044f\u0440\u043a\u0438\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438, \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u0438 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u043d\u0438\u043c\u043a\u043e\u0432. \u0412 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u043d\u043e\u0432\u044b\u0435 \u0447\u0430\u043d\u043a\u0438 (mDCV, cLLI, cICP, acTL, fcTL, fdAT, eXIf), \u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0430 \u2014 \u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 200 x 200 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u043d\u0430 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u043c \u0444\u043e\u043d\u0435 400 x 400 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439, \u043c\u0435\u043d\u044f\u044e\u0449\u0435\u0433\u043e \u0446\u0432\u0435\u0442\u0430 \u0438 \u0434\u0432\u0438\u0436\u0443\u0449\u0435\u0433\u043e\u0441\u044f, \u2014 \u0438 \u043f\u043e\u043a\u0430\u0436\u0435\u043c, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Python.<\/p>\n<h4>\u041d\u043e\u0432\u044b\u0435 \u0447\u0430\u043d\u043a\u0438 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438<\/h4>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/196\/f42\/0e5\/196f420e545ea794ec17e7af69ce1dca.png\" width=\"870\" height=\"424\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/196\/f42\/0e5\/196f420e545ea794ec17e7af69ce1dca.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/196\/f42\/0e5\/196f420e545ea794ec17e7af69ce1dca.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0422\u0440\u0435\u0442\u044c\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u0432\u0432\u0435\u043b\u0430 \u0447\u0430\u043d\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0434\u0438\u043a\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 PNG:<\/p>\n<ul>\n<li>\n<p><strong>HDR-\u0447\u0430\u043d\u043a\u0438<\/strong>:<\/p>\n<\/li>\n<li>\n<p><strong>mDCV (Mastering Display Color Volume)<\/strong>: \u0425\u0440\u0430\u043d\u0438\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u043c \u043e\u0431\u044a\u0451\u043c\u0435 \u0438 \u044f\u0440\u043a\u043e\u0441\u0442\u0438 (12 \u0431\u0430\u0439\u0442 \u0434\u043b\u044f \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430, 4 \u0431\u0430\u0439\u0442\u0430 \u0434\u043b\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u044f\u0440\u043a\u043e\u0441\u0442\u0438). \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044e \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u043e \u043d\u0430 HDR-\u0434\u0438\u0441\u043f\u043b\u0435\u044f\u0445, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a 4K-\u0442\u0435\u043b\u0435\u0432\u0438\u0437\u043e\u0440\u044b.<\/p>\n<\/li>\n<li>\n<p><strong>cLLI (Content Light Level Info)<\/strong>: \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e (MaxCLL, 4 \u0431\u0430\u0439\u0442\u0430) \u0438 \u0441\u0440\u0435\u0434\u043d\u044e\u044e (MaxFALL, 4 \u0431\u0430\u0439\u0442\u0430) \u044f\u0440\u043a\u043e\u0441\u0442\u044c, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044f \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u0441 \u0440\u0430\u0437\u043d\u043e\u0439 \u044f\u0440\u043a\u043e\u0441\u0442\u044c\u044e.<\/p>\n<\/li>\n<li>\n<p><strong>cICP (Critical ICC Profile)<\/strong>: \u0423\u043f\u0440\u043e\u0449\u0451\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0446\u0432\u0435\u0442\u0430 \u0434\u043b\u044f HDR, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0434\u0438\u0441\u043f\u043b\u0435\u0435\u0432, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a OLED.<\/p>\n<\/li>\n<li>\n<p><strong>APNG-\u0447\u0430\u043d\u043a\u0438<\/strong>:<\/p>\n<\/li>\n<li>\n<p><strong>acTL (Animation Control)<\/strong>: \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u0430\u0434\u0440\u043e\u0432 \u0438 \u0447\u0438\u0441\u043b\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u043e\u0432 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0446\u0438\u043a\u043b).<\/p>\n<\/li>\n<li>\n<p><strong>fcTL (Frame Control)<\/strong>: \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440, \u043f\u043e\u0437\u0438\u0446\u0438\u044e, \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u0438 \u043c\u0435\u0442\u043e\u0434 \u043d\u0430\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>fdAT (Frame Data)<\/strong>: \u0421\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0436\u0430\u0442\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438, \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e IDAT (APNG Specification).<\/p>\n<\/li>\n<li>\n<p><strong>eXIf (EXIF Metadata)<\/strong>: \u0425\u0440\u0430\u043d\u0438\u0442 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0434\u0430\u0442\u0430 \u0441\u044a\u0451\u043c\u043a\u0438, \u043c\u043e\u0434\u0435\u043b\u044c \u043a\u0430\u043c\u0435\u0440\u044b \u0438\u043b\u0438 \u0433\u0435\u043e\u043b\u043e\u043a\u0430\u0446\u0438\u044f, \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435, \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u043c \u0441 JPEG.<\/p>\n<\/li>\n<\/ul>\n<p>\u042d\u0442\u0438 \u0447\u0430\u043d\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438: mDCV \u0438 cLLI \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e\u0442 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u044f\u0440\u043a\u0438\u0445 \u0434\u0438\u0441\u043f\u043b\u0435\u0435\u0432, acTL \u0438 fcTL \u0437\u0430\u0434\u0430\u044e\u0442 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u0434\u043b\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438, \u0430 eXIf \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043a\u0430\u043a \u0434\u043d\u0435\u0432\u043d\u0438\u043a.<\/p>\n<h4>HDR: \u044f\u0440\u043a\u0438\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432<\/h4>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 HDR \u0432 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 PNG \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u043c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u043e\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f 16 \u0431\u0438\u0442 \u043d\u0430 \u043a\u0430\u043d\u0430\u043b \u0438 \u0448\u0438\u0440\u043e\u043a\u0438\u0439 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043e\u0445\u0432\u0430\u0442. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u044f\u0440\u043a\u0438\u043c\u0438 \u0438 \u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u044b\u043c\u0438, \u043a\u0430\u043a \u043d\u0430 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u0435\u043b\u0435\u0432\u0438\u0437\u043e\u0440\u0430\u0445 \u0438\u043b\u0438 \u0438\u0433\u0440\u043e\u0432\u044b\u0445 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430\u0445. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430\u0448 \u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u0432 HDR-\u0440\u0435\u0436\u0438\u043c\u0435 \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043d\u0430\u0441\u044b\u0449\u0435\u043d\u043d\u044b\u0439 \u0446\u0432\u0435\u0442 \u0438 \u044f\u0440\u043a\u043e\u0441\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0434\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0434 \u0434\u0438\u0441\u043f\u043b\u0435\u0439, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u044f \u044d\u0444\u0444\u0435\u043a\u0442, \u0431\u0443\u0434\u0442\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u0441\u0432\u0435\u0442\u0438\u0442\u0441\u044f. \u042d\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432\u0430\u0436\u043d\u043e \u0434\u043b\u044f \u0438\u0433\u0440, \u0433\u0434\u0435 HDR \u0443\u0441\u0438\u043b\u0438\u0432\u0430\u0435\u0442 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u044b, \u0438\u043b\u0438 \u0434\u043b\u044f \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u0433\u0434\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u0447\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0441\u0432\u0435\u0442\u0430 \u0438 \u0442\u0435\u043d\u0435\u0439 (PNG News). \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043f\u0435\u0440\u0432\u043e\u0439 \u0438 \u0432\u0442\u043e\u0440\u043e\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0439, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u0445 8 \u0438\u043b\u0438 16 \u0431\u0438\u0442\u0430\u043c\u0438 \u0431\u0435\u0437 HDR, \u0442\u0440\u0435\u0442\u044c\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u044b, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a Rec. 2020, \u0434\u043b\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432.<\/p>\n<h4>APNG: \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0439<\/h4>\n<p>APNG (Animated PNG), \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0432 2004 \u0433\u043e\u0434\u0443 \u043a\u0430\u043a \u043d\u0435\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435, \u0441\u0442\u0430\u043b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u043c \u0432 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438. APNG \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u0441 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430\u043c\u0438 \u0446\u0432\u0435\u0442\u043e\u0432 \u0438 \u0430\u043b\u044c\u0444\u0430-\u043a\u0430\u043d\u0430\u043b\u043e\u043c, \u043f\u0440\u0435\u0432\u043e\u0441\u0445\u043e\u0434\u044f GIF \u043f\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0443 \u0438 \u0441\u0436\u0430\u0442\u0438\u044e. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044f, \u0433\u0434\u0435 \u043d\u0430\u0448 \u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u043c\u0435\u043d\u044f\u0435\u0442 \u0446\u0432\u0435\u0442\u0430 (\u043a\u0440\u0430\u0441\u043d\u044b\u0439, \u0437\u0435\u043b\u0451\u043d\u044b\u0439, \u0441\u0438\u043d\u0438\u0439) \u0438 \u0434\u0432\u0438\u0436\u0435\u0442\u0441\u044f \u043f\u043e \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438, \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043f\u043b\u0430\u0432\u043d\u043e \u0438 \u044f\u0440\u043a\u043e, \u0441 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u043c \u0444\u043e\u043d\u043e\u043c. APNG \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440\u0430\u0445, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Telegram, \u0434\u043b\u044f \u0441\u0442\u0438\u043a\u0435\u0440\u043e\u0432 \u0438\u043b\u0438 \u0432 \u0432\u0435\u0431-\u0434\u0438\u0437\u0430\u0439\u043d\u0435 \u0434\u043b\u044f \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0438\u043a\u043e\u043d\u043e\u043a. \u0427\u0430\u043d\u043a\u0438 acTL, fcTL \u0438 fdAT \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0442\u043e\u0447\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u0430\u0434\u0440\u0430\u043c\u0438, \u0437\u0430\u0434\u0430\u0432\u0430\u044f \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 (APNG Specification).<\/p>\n<h4>EXIF: \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439<\/h4>\n<p>\u0427\u0430\u043d\u043a eXIf \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435, \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0435 JPEG, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0434\u0430\u0442\u0430 \u0441\u044a\u0451\u043c\u043a\u0438, \u043c\u043e\u0434\u0435\u043b\u044c \u043a\u0430\u043c\u0435\u0440\u044b \u0438\u043b\u0438 \u0433\u0435\u043e\u043b\u043e\u043a\u0430\u0446\u0438\u044f. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 PNG \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u043c \u0434\u043b\u044f \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u0433\u0434\u0435 \u0432\u0430\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0441\u043d\u0438\u043c\u043a\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a \u043d\u0430\u0448\u0435\u043c\u0443 \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0443 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c eXIf \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u00ab\u0414\u0430\u0442\u0430: 2025-01-01\u00bb \u0438\u043b\u0438 \u00ab\u0410\u0432\u0442\u043e\u0440: \u0418\u0432\u0430\u043d \u0418\u0432\u0430\u043d\u043e\u0432\u00bb. \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 iTXt, eXIf \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442, \u0447\u0442\u043e \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e \u0441 \u0444\u043e\u0442\u043e\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430\u043c\u0438, \u0442\u0430\u043a\u0438\u043c\u0438 \u043a\u0430\u043a Adobe Photoshop.<\/p>\n<h4>\u041f\u0440\u0438\u043c\u0435\u0440: \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e HDR PNG \u0441 EXIF<\/h4>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e APNG, \u0433\u0434\u0435 \u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u043c\u0435\u043d\u044f\u0435\u0442 \u0446\u0432\u0435\u0442\u0430 (\u043a\u0440\u0430\u0441\u043d\u044b\u0439, \u0437\u0435\u043b\u0451\u043d\u044b\u0439, \u0441\u0438\u043d\u0438\u0439) \u0438 \u0434\u0432\u0438\u0436\u0435\u0442\u0441\u044f \u043f\u043e \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438, \u0441 HDR-\u044d\u0444\u0444\u0435\u043a\u0442\u0430\u043c\u0438 \u0438 EXIF-\u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f Python \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 pyAPNG, Pillow \u0438 imageio.<\/p>\n<p><strong>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 APNG \u0441 pyAPNG<\/strong>:<\/p>\n<pre><code class=\"python\">from PIL import Image from apng import APNG import numpy as np  # \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0442\u0440\u0438 \u043a\u0430\u0434\u0440\u0430 400x400 \u0441 \u0434\u0432\u0438\u0436\u0443\u0449\u0438\u043c\u0441\u044f \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u043c frames = [] colors = [(255, 0, 0, 255), (0, 255, 0, 255), (0, 0, 255, 255)]  # \u041a\u0440\u0430\u0441\u043d\u044b\u0439, \u0437\u0435\u043b\u0451\u043d\u044b\u0439, \u0441\u0438\u043d\u0438\u0439 positions = [(100, 100), (150, 150), (200, 200)]  # \u0414\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u043f\u043e \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438  for i in range(3):     frame = Image.new('RGBA', (400, 400), (0, 0, 0, 0))  # \u041f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439 \u0444\u043e\u043d     frame.paste(Image.new('RGBA', (200, 200), colors[i]), positions[i])  # \u041a\u0432\u0430\u0434\u0440\u0430\u0442     frame.save(f'out\/frame{i}.png')     frames.append(f'out\/frame{i}.png')  # \u0421\u043e\u0437\u0434\u0430\u0451\u043c APNG apng = APNG() for frame in frames:     apng.append_file(frame, delay=100)  # \u0417\u0430\u0434\u0435\u0440\u0436\u043a\u0430 100 \u043c\u0441 apng.save('out\/moving_square.apng') <\/code><\/pre>\n<p><strong>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 EXIF \u0441 Pillow \u0438 apng<\/strong>:<\/p>\n<pre><code class=\"python\">from PIL import Image import apng from io import BytesIO import os  # 1. \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043f\u0430\u043f\u043a\u0443 \u0434\u043b\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 os.makedirs(\"out\/temp_frames\", exist_ok=True)  # 2. \u0427\u0438\u0442\u0430\u0435\u043c APNG png = apng.APNG.open(\"out\/moving_square.apng\")  # 3. \u041e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u0430\u0434\u0440 for i, (png_frame, control) in enumerate(png.frames):     img = Image.open(BytesIO(png_frame.to_bytes()))  # \u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0432 PIL.Image      # \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c EXIF     exif = img.getexif()     exif[0x0132] = '2025:01:01 12:00:00'  # DateTime     exif[0x010f] = 'HelloHabr'  # Author      # \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u043a\u0430\u0434\u0440     # \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u043a\u0430\u0434\u0440 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b     frame_path = f\"out\/temp_frames\/frame_{i}.png\"     img.save(frame_path, exif=exif)  # 4. \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 APNG (\u0441 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a) output_files = [] for i, (_, control) in enumerate(png.frames):     frame_path = f\"out\/temp_frames\/frame_{i}.png\"     output_files.append((frame_path, control.delay))  # \u041a\u043e\u0440\u0442\u0435\u0436 (\u043f\u0443\u0442\u044c, \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430)  apng = apng.APNG() for file, delay in output_files:     apng.append_file(file, delay=delay)  # \u0417\u0430\u0434\u0435\u0440\u0436\u043a\u0430 100 \u043c\u0441 apng.save('out\/moving_square_with_exif.apng') # 5. \u0423\u0434\u0430\u043b\u044f\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b (\u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e) for i in range(len(png.frames)):     os.remove(f\"out\/temp_frames\/frame_{i}.png\") os.rmdir(\"out\/temp_frames\") <\/code><\/pre>\n<p><strong>\u0421\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 HDR \u0441 imageio<\/strong>:<\/p>\n<pre><code class=\"python\">import imageio.v3 as iio import numpy as np from PIL import Image  # 1. \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 HDR-\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 (400x400 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439, 3 \u043a\u0430\u043d\u0430\u043b\u0430) hdr_image = np.random.rand(400, 400, 3).astype(np.float32) * 10.0  # \u042f\u0440\u043a\u043e\u0441\u0442\u044c \u0434\u043e 10 \u043d\u0438\u0442  # 2. \u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0432 16-\u0431\u0438\u0442\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 max_val = np.max(hdr_image) normalized = hdr_image \/ max_val  # \u041d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0432 [0, 1] uint16_image = (normalized * 65535).astype(np.uint16)  # \u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0432 uint16  # 3. \u041c\u0435\u043d\u044f\u0435\u043c \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u0434\u043b\u044f Pillow (RGB -&gt; PIL-\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442) #    Pillow \u043e\u0436\u0438\u0434\u0430\u0435\u0442 (height, width, channels) -&gt; (100, 100, 3) if uint16_image.shape[-1] == 3:  # \u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c - \u043a\u0430\u043d\u0430\u043b\u044b     uint16_image = np.ascontiguousarray(uint16_image)  # \u0414\u0435\u043b\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u043c  # 4. \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0447\u0435\u0440\u0435\u0437 Pillow \u0441 \u044f\u0432\u043d\u044b\u043c \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u0440\u0435\u0436\u0438\u043c\u0430 with Image.fromarray(uint16_image, mode='RGB') as img:     img.save('out\/hdr_square.png', bitdepth=16)  # 5. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 read_hdr = iio.imread('out\/hdr_square.png') print(f\"Image shape: {read_hdr.shape}, dtype: {read_hdr.dtype}\") <\/code><\/pre>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/strong>: \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0447\u0430\u043d\u043a\u043e\u0432 mDCV, cLLI, cICP \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 pypng, \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 (Pillow, imageio) \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 HDR-\u0447\u0430\u043d\u043a\u0438 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438.<\/p>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 \u043d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c mDCV \u0432\u0440\u0443\u0447\u043d\u0443\u044e:<\/strong><\/p>\n<pre><code class=\"python\">import zlib import struct import png  # pip install pypng  def add_mdcv_chunk(input_path, output_path):     # \u0427\u0438\u0442\u0430\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 PNG     reader = png.Reader(filename=input_path)     chunks = list(reader.chunks())  # \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u0441\u0435 \u0447\u0430\u043d\u043a\u0438      # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f mDCV \u0447\u0430\u043d\u043a\u0430 (6 float + 1 uint32)     mdcv_data = struct.pack('&gt;6fI',         0.708, 0.292,  # \u041a\u0440\u0430\u0441\u043d\u044b\u0439         0.170, 0.797,  # \u0417\u0435\u043b\u0435\u043d\u044b\u0439         0.131, 0.046,  # \u0421\u0438\u043d\u0438\u0439         1000           # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u044f\u0440\u043a\u043e\u0441\u0442\u044c \u0432 \u043d\u0438\u0442\u0430\u0445     )      # \u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c CRC \u0434\u043b\u044f mDCV \u0447\u0430\u043d\u043a\u0430     chunk_type = b'mDCV'     crc = zlib.crc32(chunk_type + mdcv_data) &amp; 0xffffffff      # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043a\u043e\u0440\u0442\u0435\u0436 \u0447\u0430\u043d\u043a\u0430 (\u0442\u0438\u043f, \u0434\u0430\u043d\u043d\u044b\u0435)     mdcv_chunk = (chunk_type, mdcv_data)      # \u0412\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u043e\u0441\u043b\u0435 IHDR (\u043f\u043e\u0437\u0438\u0446\u0438\u044f 1)     chunks.insert(1, mdcv_chunk)      # \u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b     with open(output_path, 'wb') as f:         # \u0421\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430 PNG         f.write(b'\\x89PNG\\r\\n\\x1a\\n')          # \u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0432\u0441\u0435 \u0447\u0430\u043d\u043a\u0438 \u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c\u0438 CRC         for chunk_type, chunk_data in chunks:             # \u0414\u043b\u0438\u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0445             f.write(struct.pack('&gt;I', len(chunk_data)))             # \u0422\u0438\u043f \u0447\u0430\u043d\u043a\u0430             f.write(chunk_type)             # \u0414\u0430\u043d\u043d\u044b\u0435             f.write(chunk_data)             # CRC (\u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0447\u0430\u043d\u043a\u043e\u0432)             crc = zlib.crc32(chunk_type + chunk_data) &amp; 0xffffffff             f.write(struct.pack('&gt;I', crc))  # \u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f add_mdcv_chunk('out\/red_square.png', 'out\/red_square_hdr.png') <\/code><\/pre>\n<p>\u042d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 PNG \u0441 \u0442\u0440\u0435\u043c\u044f \u043a\u0430\u0434\u0440\u0430\u043c\u0438, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 EXIF-\u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 HDR-\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435. \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0444\u0430\u0439\u043b\u0430 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442:<\/p>\n<ul>\n<li>\n<p><strong>IHDR<\/strong>: \u0428\u0438\u0440\u0438\u043d\u0430 = 100, \u0412\u044b\u0441\u043e\u0442\u0430 = 100, \u0413\u043b\u0443\u0431\u0438\u043d\u0430 = 16 \u0431\u0438\u0442, \u0422\u0438\u043f = 6 (RGBA).<\/p>\n<\/li>\n<li>\n<p><strong>mDCV, cLLI, cICP<\/strong>: HDR-\u0434\u0430\u043d\u043d\u044b\u0435 (\u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043e\u0431\u044a\u0451\u043c, \u044f\u0440\u043a\u043e\u0441\u0442\u044c).<\/p>\n<\/li>\n<li>\n<p><strong>acTL<\/strong>: 3 \u043a\u0430\u0434\u0440\u0430, \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0446\u0438\u043a\u043b.<\/p>\n<\/li>\n<li>\n<p><strong>fcTL<\/strong>: \u0417\u0430\u0434\u0435\u0440\u0436\u043a\u0430 100 \u043c\u0441, \u043f\u043e\u0437\u0438\u0446\u0438\u0438 (25,25), (35,35), (45,45).<\/p>\n<\/li>\n<li>\n<p><strong>fdAT<\/strong>: \u0414\u0430\u043d\u043d\u044b\u0435 \u043a\u0430\u0434\u0440\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p><strong>eXIf<\/strong>: \u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 (\u00ab\u0414\u0430\u0442\u0430: 2025-01-01\u00bb).<\/p>\n<\/li>\n<li>\n<p><strong>IDAT, IEND<\/strong>: \u0414\u0430\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430 \u0438 \u043a\u043e\u043d\u0435\u0446 \u0444\u0430\u0439\u043b\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438\u0437 PNG Suite (PNG Suite) \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044e\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 APNG \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u0445, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Chrome, \u0438 HDR \u043d\u0430 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0434\u0438\u0441\u043f\u043b\u0435\u044f\u0445.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/645\/0e9\/f5b\/6450e9f5b2e1fb37e7210e61bb97668a.png\" width=\"870\" height=\"579\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/645\/0e9\/f5b\/6450e9f5b2e1fb37e7210e61bb97668a.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/645\/0e9\/f5b\/6450e9f5b2e1fb37e7210e61bb97668a.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h4>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u043c\u0438 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f\u043c\u0438<\/h4>\n<p>\u0422\u0440\u0435\u0442\u044c\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u0441\u0434\u0435\u043b\u0430\u043b\u0430 PNG \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u043c:<\/p>\n<ul>\n<li>\n<p><strong>HDR<\/strong>: \u041f\u0435\u0440\u0432\u0430\u044f \u0438 \u0432\u0442\u043e\u0440\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u044b 8\/16 \u0431\u0438\u0442\u0430\u043c\u0438 \u0431\u0435\u0437 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 \u044f\u0440\u043a\u043e\u0441\u0442\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>APNG<\/strong>: \u041f\u0435\u0440\u0432\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b\u0430 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438, \u0432\u0442\u043e\u0440\u0430\u044f \u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0447\u0435\u0440\u0435\u0437 APNG.<\/p>\n<\/li>\n<li>\n<p><strong>EXIF<\/strong>: \u0420\u0430\u043d\u0435\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c\u0438 \u0447\u0430\u043d\u043a\u0430\u043c\u0438 (tEXt, zTXt, iTXt).<\/p>\n<\/li>\n<li>\n<p><strong>\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c<\/strong>: \u041d\u043e\u0432\u044b\u0435 \u0447\u0430\u043d\u043a\u0438 (mDCV, cLLI, cICP, eXIf) \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0441\u0442\u0430\u0440\u044b\u043c\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u043c\u0438, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c.<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430\u0448 \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043b\u043e\u0433\u043e\u0442\u0438\u043f \u0441 HDR \u0438 EXIF \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u0435\u043d \u0432 \u043f\u0435\u0440\u0432\u044b\u0445 \u0434\u0432\u0443\u0445 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f\u0445, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0438 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435.<\/p>\n<h4>\u0412\u043b\u0438\u044f\u043d\u0438\u0435: \u0432\u0435\u0431, \u0438\u0433\u0440\u044b, \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f<\/h4>\n<p>\u0422\u0440\u0435\u0442\u044c\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u043e\u0442\u043a\u0440\u044b\u043b\u0430 \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438:<\/p>\n<ul>\n<li>\n<p><strong>\u0412\u0435\u0431-\u0434\u0438\u0437\u0430\u0439\u043d<\/strong>: APNG \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u0438\u043a\u0435\u0440\u043e\u0432 \u0432 \u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440\u0430\u0445 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, Telegram) \u0438\u043b\u0438 \u0438\u043a\u043e\u043d\u043e\u043a \u043d\u0430 \u0441\u0430\u0439\u0442\u0430\u0445, \u043f\u0440\u0435\u0432\u043e\u0441\u0445\u043e\u0434\u044f GIF \u043f\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0443.<\/p>\n<\/li>\n<li>\n<p><strong>\u0418\u0433\u0440\u044b<\/strong>: HDR-\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0443\u0441\u0438\u043b\u0438\u0432\u0430\u044e\u0442 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u044b \u043d\u0430 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0434\u0438\u0441\u043f\u043b\u0435\u044f\u0445, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a \u0438\u0433\u0440\u043e\u0432\u044b\u0435 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u044b \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 Rec. 2020.<\/p>\n<\/li>\n<li>\n<p><strong>\u0424\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f<\/strong>: eXIf \u0434\u0435\u043b\u0430\u0435\u0442 PNG \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043e\u0439 JPEG \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043d\u0438\u043c\u043a\u043e\u0432 \u0441 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u042d\u0442\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043a\u0440\u0435\u043f\u0438\u043b\u0438 PNG \u043a\u0430\u043a \u0444\u043e\u0440\u043c\u0430\u0442 \u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0439 \u043a\u043e\u043d\u043a\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441 JPEG, WebP \u0438 AVIF. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437\u0434\u0435\u043b \u043f\u043e\u043a\u0430\u0436\u0435\u0442, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 Python.<\/p>\n<h3>\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440: \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043f\u0435\u0440\u0435\u043b\u0438\u0432\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0438 \u043a\u0440\u0443\u0442\u044f\u0449\u0438\u0439\u0441\u044f \u043b\u043e\u0433\u043e\u0442\u0438\u043f \u00abPNG\u00bb \u043d\u0430 Python<\/h3>\n<p>Python \u2014 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u0440\u0435\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 PNG, \u043e\u0442 \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0445 \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u043e\u0432 \u0434\u043e \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u0438\u043a\u0435\u0440\u043e\u0432 \u0441 HDR-\u044d\u0444\u0444\u0435\u043a\u0442\u0430\u043c\u0438. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c Pillow, pyAPNG, imageio \u0438 pypng, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0432\u0441\u0435\u0445 \u0442\u0440\u0451\u0445 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0439 PNG (1996, 2003, 2025). \u0412 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043b\u043e\u0433\u043e\u0442\u0438\u043f \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u00abPNG\u00bb (\u0448\u0440\u0438\u0444\u0442 Arial, \u0440\u0430\u0437\u043c\u0435\u0440 30) \u043d\u0430 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u043c \u0444\u043e\u043d\u0435 100&#215;100 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0435\u0440\u0435\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0446\u0432\u0435\u0442\u0430\u043c\u0438 (\u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442 \u043e\u0442 \u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u043a \u0441\u0438\u043d\u0435\u043c\u0443 \u0447\u0435\u0440\u0435\u0437 \u0437\u0435\u043b\u0451\u043d\u044b\u0439) \u0438 \u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043d\u0430 360 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 Python \u043a\u0430\u043a \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u0441\u0442\u0443\u0434\u0438\u044e, \u0433\u0434\u0435 \u0447\u0430\u043d\u043a\u0438 PNG \u2014 \u044d\u0442\u043e \u043a\u0430\u0434\u0440\u044b \u0444\u0438\u043b\u044c\u043c\u0430, \u0441\u043e\u0437\u0434\u0430\u044e\u0449\u0438\u0435 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u044b. \u042d\u0442\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c PNG \u0432 \u0432\u0435\u0431-\u0434\u0438\u0437\u0430\u0439\u043d\u0435, \u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440\u0430\u0445 \u0438 \u0438\u0433\u0440\u0430\u0445 (PNG FAQ).<\/p>\n<h4>\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440: \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0430 \u00abPNG\u00bb \u0441 \u043f\u0435\u0440\u0435\u043b\u0438\u0432\u0430\u043d\u0438\u0435\u043c \u0438 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435\u043c (\u0442\u0440\u0435\u0442\u044c\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f, 2025)<\/h4>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c APNG \u0441 \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u043e\u043c \u00abPNG\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0435\u0440\u0435\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0446\u0432\u0435\u0442\u0430\u043c\u0438 (\u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442 \u043e\u0442 \u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u043a \u0441\u0438\u043d\u0435\u043c\u0443 \u0447\u0435\u0440\u0435\u0437 \u0437\u0435\u043b\u0451\u043d\u044b\u0439) \u0438 \u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043d\u0430 360 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u0437\u0430 6 \u043a\u0430\u0434\u0440\u043e\u0432. \u0412\u0441\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043a\u043e\u0434\u0443.<\/p>\n<p><strong>\u041a\u043e\u0434 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f APNG \u0441 \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u043e\u043c \u0438 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435\u043c<\/strong>:<\/p>\n<pre><code class=\"python\">from PIL import Image, ImageDraw, ImageFont from apng import APNG import os  # \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 WIDTH, HEIGHT = 400, 400 FRAME_COUNT = 6 DELAY_MS = 100  # \u0417\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u043c\u0435\u0436\u0434\u0443 \u043a\u0430\u0434\u0440\u0430\u043c\u0438 \u0432 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445 OUTPUT_FILE = 'out\/logo_png_animated.apng'  # \u0426\u0432\u0435\u0442\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430 COLORS = [     (255, 0, 0, 255),    # \u041a\u0440\u0430\u0441\u043d\u044b\u0439     (255, 255, 0, 255),  # \u0416\u0451\u043b\u0442\u044b\u0439     (0, 255, 0, 255),    # \u0417\u0435\u043b\u0451\u043d\u044b\u0439     (0, 255, 255, 255),  # \u0426\u0438\u0430\u043d     (0, 0, 255, 255),    # \u0421\u0438\u043d\u0438\u0439     (255, 0, 255, 255)   # \u041f\u0443\u0440\u043f\u0443\u0440\u043d\u044b\u0439 ]  def create_animation():     # \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u0434\u043b\u044f \u043a\u0430\u0434\u0440\u043e\u0432     os.makedirs('out\/temp_frames', exist_ok=True)      # \u0413\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u043a\u0430\u0434\u0440\u044b     frame_files = []     for i in range(FRAME_COUNT):         angle = i * (360 \/ FRAME_COUNT)         color = COLORS[i]          # \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435         img = Image.new('RGBA', (WIDTH, HEIGHT), (0, 0, 0, 0))          # \u041f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0448\u0440\u0438\u0444\u0442 (\u0441 fallback)         try:             font = ImageFont.truetype('\/usr\/share\/fonts\/truetype\/dejavu\/DejaVuSans-Bold.ttf', 120)         except Exception:             font = ImageFont.load_default()          # \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0434\u043b\u044f \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f         text_img = Image.new('RGBA', (WIDTH, HEIGHT), (0, 0, 0, 0))         text_draw = ImageDraw.Draw(text_img)         text_draw.text((80, 140), \"PNG\", font=font, fill=color)          # \u0412\u0440\u0430\u0449\u0430\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u0432\u043e\u043a\u0440\u0443\u0433 \u0446\u0435\u043d\u0442\u0440\u0430         rotated = text_img.rotate(angle, center=(WIDTH\/\/2, HEIGHT\/\/2))          # \u041a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u0443\u0435\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f         img.paste(rotated, (0, 0), rotated)          # \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u043a\u0430\u0434\u0440         frame_path = f'out\/temp_frames\/frame_{i:02d}.png'         try:             img.save(frame_path)             frame_files.append(frame_path)         except Exception as e:             print(f\"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u043a\u0430\u0434\u0440\u0430 {frame_path}: {e}\")      # \u0421\u043e\u0437\u0434\u0430\u0451\u043c APNG     try:         apng = APNG()         for frame in frame_files:             apng.append_file(frame, delay=DELAY_MS)         apng.save(OUTPUT_FILE)         print(f\"\u0410\u043d\u0438\u043c\u0430\u0446\u0438\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430 \u043a\u0430\u043a {OUTPUT_FILE}\")     except Exception as e:         print(f\"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 APNG: {e}\")     finally:         # \u0423\u0434\u0430\u043b\u044f\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0441 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u043e\u0448\u0438\u0431\u043e\u043a         for frame in frame_files:             try:                 os.remove(frame)             except OSError as e:                 print(f\"\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0444\u0430\u0439\u043b {frame}: {e}\")          try:             os.rmdir('out\/temp_frames')         except OSError as e:             print(f\"\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e temp_frames: {e}\")  if __name__ == \"__main__\":     create_animation() <\/code><\/pre>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u043a\u0430\u0434\u0440 \u2014 400&#215;400 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439<\/p>\n<\/li>\n<li>\n<p>\u0422\u0435\u043a\u0441\u0442 \u201cPNG\u201d \u2014 \u0448\u0440\u0438\u0444\u0442 120, \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b (80, 140)<\/p>\n<\/li>\n<li>\n<p>\u0426\u0432\u0435\u0442\u0430: \u043a\u0440\u0430\u0441\u043d\u044b\u0439, \u0436\u0451\u043b\u0442\u044b\u0439, \u0437\u0435\u043b\u0451\u043d\u044b\u0439, \u0446\u0438\u0430\u043d, \u0441\u0438\u043d\u0438\u0439, \u043f\u0443\u0440\u043f\u0443\u0440\u043d\u044b\u0439<\/p>\n<\/li>\n<li>\n<p>\u0412\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u0430 \u043f\u043e \u043a\u0440\u0443\u0433\u0443<\/p>\n<\/li>\n<\/ul>\n<h4>\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 2: \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e  RGB \u043a\u0443\u0431\u0430 (\u0442\u0440\u0435\u0442\u044c\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f, 2025):<\/h4>\n<pre><code class=\"python\">import asyncio import math import numpy as np from PIL import Image from io import BytesIO from apng import APNG, PNG import pygame from pygame.locals import * from OpenGL.GL import * from OpenGL.GLU import *  # \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b FPS = 60 cubeWidth = 10  # \u041c\u0430\u0441\u0448\u0442\u0430\u0431 \u043a\u0443\u0431\u0430 width, height = 800, 600  # \u0420\u0430\u0437\u043c\u0435\u0440 \u043e\u043a\u043d\u0430 distanceFromCam = 50  # \u0420\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043a\u0430\u043c\u0435\u0440\u044b K1 = 40  # \u041a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u043f\u0440\u043e\u0435\u043a\u0446\u0438\u0438 A, B, C = 0.0, 0.0, 0.0  # \u0423\u0433\u043b\u044b \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f background_alpha = 0.0  # \u041f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u0444\u043e\u043d\u0430 (0.0 - \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439, 1.0 - \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0435\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439)  def calculateX(i, j, k):     return j * math.sin(A) * math.sin(B) * math.cos(C) - k * math.cos(A) * math.sin(B) * math.cos(C) + \\            j * math.cos(A) * math.sin(C) + k * math.sin(A) * math.sin(C) + i * math.cos(B) * math.cos(C)  def calculateY(i, j, k):     return j * math.cos(A) * math.cos(C) + k * math.sin(A) * math.cos(C) - \\            j * math.sin(A) * math.sin(B) * math.sin(C) + k * math.cos(A) * math.sin(B) * math.sin(C) - \\            i * math.cos(B) * math.sin(C)  def calculateZ(i, j, k):     return k * math.cos(A) * math.cos(B) - j * math.sin(A) * math.cos(B) + i * math.sin(B)  def Cube():     glBegin(GL_QUADS)     for i, surface in enumerate(surfaces):         for vertex in surface:             x, y, z = vertices[vertex]             # \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 calculateX\/Y\/Z             rotated_x = calculateX(x, y, z)             rotated_y = calculateY(x, y, z)             rotated_z = calculateZ(x, y, z)             # \u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0446\u0432\u0435\u0442\u0430 \u0441 \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u043e\u043c             base_color = ((x \/ cubeWidth + 1) \/ 2, (z \/ cubeWidth + 1) \/ 2, (y \/ cubeWidth + 1) \/ 2)             gradient = (i \/ len(surfaces))             color = (                 base_color[0] * (1 - gradient) + gradient * 0.5,                 base_color[1] * (1 - gradient) + gradient * 0.5,                 base_color[2] * (1 - gradient) + gradient * 0.3             )             glColor3fv(color)             glVertex3fv((rotated_x, rotated_y, rotated_z))     glEnd()  # \u0412\u0435\u0440\u0448\u0438\u043d\u044b \u043a\u0443\u0431\u0430 \u0441 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438 (x, y, z) \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 [-cubeWidth, cubeWidth] vertices = (     (cubeWidth, -cubeWidth, -cubeWidth),  # 0: \u043b\u0435\u0432\u043e, \u0432\u0435\u0440\u0445, \u043d\u0438\u0437     (cubeWidth, cubeWidth, -cubeWidth),   # 1: \u043b\u0435\u0432\u043e, \u043d\u0438\u0437, \u043d\u0438\u0437     (-cubeWidth, cubeWidth, -cubeWidth),  # 2: \u043f\u0440\u0430\u0432\u043e, \u043d\u0438\u0437, \u043d\u0438\u0437     (-cubeWidth, -cubeWidth, -cubeWidth), # 3: \u043f\u0440\u0430\u0432\u043e, \u0432\u0435\u0440\u0445, \u043d\u0438\u0437     (cubeWidth, -cubeWidth, cubeWidth),   # 4: \u043b\u0435\u0432\u043e, \u0432\u0435\u0440\u0445, \u0432\u0435\u0440\u0445     (cubeWidth, cubeWidth, cubeWidth),    # 5: \u043b\u0435\u0432\u043e, \u043d\u0438\u0437, \u0432\u0435\u0440\u0445     (-cubeWidth, cubeWidth, cubeWidth),   # 6: \u043f\u0440\u0430\u0432\u043e, \u043d\u0438\u0437, \u0432\u0435\u0440\u0445     (-cubeWidth, -cubeWidth, cubeWidth),  # 7: \u043f\u0440\u0430\u0432\u043e, \u0432\u0435\u0440\u0445, \u0432\u0435\u0440\u0445 )  # \u0413\u0440\u0430\u043d\u0438 \u043a\u0443\u0431\u0430 (\u043a\u0430\u0436\u0434\u0430\u044f \u2014 4 \u0432\u0435\u0440\u0448\u0438\u043d\u044b) surfaces = (     (0, 1, 2, 3),  # \u041d\u0438\u0436\u043d\u044f\u044f \u0433\u0440\u0430\u043d\u044c     (4, 5, 6, 7),  # \u0412\u0435\u0440\u0445\u043d\u044f\u044f \u0433\u0440\u0430\u043d\u044c     (0, 4, 5, 1),  # \u041b\u0435\u0432\u0430\u044f \u0433\u0440\u0430\u043d\u044c     (3, 7, 6, 2),  # \u041f\u0440\u0430\u0432\u0430\u044f \u0433\u0440\u0430\u043d\u044c     (1, 5, 6, 2),  # \u0417\u0430\u0434\u043d\u044f\u044f \u0433\u0440\u0430\u043d\u044c     (0, 4, 7, 3),  # \u041f\u0435\u0440\u0435\u0434\u043d\u044f\u044f \u0433\u0440\u0430\u043d\u044c )  async def main():     pygame.init()     display = (width, height)     pygame.display.set_mode(display, DOUBLEBUF | OPENGL)     pygame.display.set_caption(\"RGB Cube - axes: R left, G up, B bottom-right\")      # \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0440\u043e\u0435\u043a\u0446\u0438\u0438     gluPerspective(60, (width \/ height), 0.1, 200.0)  # \u0410\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u043f\u043e\u0434 distanceFromCam=50     glTranslatef(0.0, 0.0, -distanceFromCam)     glEnable(GL_DEPTH_TEST)     glClearColor(0.1, 0.1, 0.1, background_alpha)      frames = []     num_frames = 1000  # \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u0430\u0434\u0440\u043e\u0432 \u0434\u043b\u044f \u043f\u043b\u0430\u0432\u043d\u043e\u0441\u0442\u0438      for frame_idx in range(num_frames):         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)          glPushMatrix()         # \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0443\u0433\u043b\u043e\u0432 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0441 \u043c\u0435\u043d\u044c\u0448\u0438\u043c \u0448\u0430\u0433\u043e\u043c         global A, B         A += 0.0025  # \u0423\u043c\u0435\u043d\u044c\u0448\u0435\u043d \u0448\u0430\u0433 \u0434\u043b\u044f \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f         B += 0.0025         C = 0.0          Cube()          glPopMatrix()          # \u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043a\u0430\u0434\u0440\u0430         data = glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE)         pil_frame = Image.frombytes('RGBA', (width, height), data).transpose(Image.FLIP_TOP_BOTTOM)         buf = BytesIO()         pil_frame.save(buf, format='PNG')         buf.seek(0)         png_frame = PNG.from_bytes(buf.read())         frames.append(png_frame)          await asyncio.sleep(1.0 \/ FPS)  # \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043a\u0430\u0434\u0440\u043e\u0432      # \u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u0432 APNG     apng = APNG()     for png_frame in frames:         apng.append(png_frame, delay=1000 \/\/ FPS)  # \u0417\u0430\u0434\u0435\u0440\u0436\u043a\u0430 16.67 \u043c\u0441 (60 FPS)     apng.save('out\/spinning_cube.apng')      pygame.quit()  if __name__ == \"__main__\":     asyncio.run(main()) <\/code><\/pre>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ccb\/05a\/6b9\/ccb05a6b98e0565759e6c4e3ff143393.png\" alt=\"\u044d\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f, \u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043a\u043e\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f, \u043d\u043e \u043f\u043e \u0441\u0443\u0442\u0438 \u043f\u043e\u0445\u043e\u0436, \u0438\u0437-\u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0432\u0435\u0441\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0435\u0433\u043e\u0441\u044f \u0444\u0430\u0439\u043b\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0435 \u0441\u043c\u043e\u0433.\" title=\"\u044d\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f, \u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043a\u043e\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f, \u043d\u043e \u043f\u043e \u0441\u0443\u0442\u0438 \u043f\u043e\u0445\u043e\u0436, \u0438\u0437-\u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0432\u0435\u0441\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0435\u0433\u043e\u0441\u044f \u0444\u0430\u0439\u043b\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0435 \u0441\u043c\u043e\u0433.\" width=\"192\" height=\"192\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/ccb\/05a\/6b9\/ccb05a6b98e0565759e6c4e3ff143393.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ccb\/05a\/6b9\/ccb05a6b98e0565759e6c4e3ff143393.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u044d\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f, \u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043a\u043e\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f, \u043d\u043e \u043f\u043e \u0441\u0443\u0442\u0438 \u043f\u043e\u0445\u043e\u0436, \u0438\u0437-\u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0432\u0435\u0441\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0435\u0433\u043e\u0441\u044f \u0444\u0430\u0439\u043b\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0435 \u0441\u043c\u043e\u0433.<\/figcaption><\/div>\n<\/figure>\n<h3>\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437<\/h3>\n<p>\u0424\u043e\u0440\u043c\u0430\u0442 PNG \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043b \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u0435\u043b\u044f GIF \u0432 1996 \u0433\u043e\u0434\u0443 \u0434\u043e \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0434\u043b\u044f \u0432\u0435\u0431-\u0434\u0438\u0437\u0430\u0439\u043d\u0430, \u0438\u0433\u0440 \u0438 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0432 2025 \u0433\u043e\u0434\u0443. \u041a\u0430\u0436\u0434\u0430\u044f \u0438\u0437 \u0442\u0440\u0451\u0445 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0439 PNG (1996, 2003, 2025) \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u043b\u0430 \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u0434\u0435\u043b\u0430\u044f \u0444\u043e\u0440\u043c\u0430\u0442 \u0432\u0441\u0451 \u0431\u043e\u043b\u0435\u0435 \u0433\u0438\u0431\u043a\u0438\u043c. \u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u044d\u0442\u0438\u0445 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0439 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447, \u0431\u0443\u0434\u044c \u0442\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0430, \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u0438\u043b\u0438 HDR-\u0433\u0440\u0430\u0444\u0438\u043a\u0438. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0432\u044b\u0431\u043e\u0440 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438 PNG \u043a\u0430\u043a \u0432\u044b\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0432 \u043c\u0430\u0441\u0442\u0435\u0440\u0441\u043a\u043e\u0439: \u043a\u0430\u0436\u0434\u044b\u0439 \u0445\u043e\u0440\u043e\u0448 \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0439 \u0446\u0435\u043b\u0438. \u0412 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u044b \u0441\u0440\u0430\u0432\u043d\u0438\u043c \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0439, \u0432\u044b\u0434\u0435\u043b\u0438\u043c \u0438\u0445 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f, \u0438 \u0434\u0430\u0434\u0438\u043c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u043f\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0440\u0438\u043c\u0435\u0440 \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0430 \u00abPNG\u00bb \u0441 \u043f\u0435\u0440\u0435\u043b\u0438\u0432\u0430\u043d\u0438\u0435\u043c \u0446\u0432\u0435\u0442\u043e\u0432 \u0438 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435\u043c (PNG FAQ).<\/p>\n<h4>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0439: \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438<\/h4>\n<p>\u041a\u0430\u0436\u0434\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f PNG \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u043b\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0430, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044f \u043d\u043e\u0432\u044b\u0435 \u0447\u0430\u043d\u043a\u0438 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043d\u0430 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f\u0445 W3C (W3C PNG Specification (First Edition, 1996), Second Edition, 2003, Third Edition, 2025).<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\"><strong>\u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430<\/strong><\/p>\n<\/th>\n<th>\n<p align=\"left\"><strong>\u0427\u0430\u043d\u043a\u0438<\/strong><\/p>\n<\/th>\n<th>\n<p align=\"left\"><strong>\u0426\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u0442\u0438\u043f\u044b<\/strong><\/p>\n<\/th>\n<th>\n<p align=\"left\"><strong>\u0413\u043b\u0443\u0431\u0438\u043d\u0430 \u0446\u0432\u0435\u0442\u0430<\/strong><\/p>\n<\/th>\n<th>\n<p align=\"left\"><strong>\u041f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c<\/strong><\/p>\n<\/th>\n<th>\n<p align=\"left\"><strong>\u0410\u043d\u0438\u043c\u0430\u0446\u0438\u044f<\/strong><\/p>\n<\/th>\n<th>\n<p align=\"left\"><strong>\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0446\u0432\u0435\u0442\u043e\u043c<\/strong><\/p>\n<\/th>\n<th>\n<p align=\"left\"><strong>\u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435<\/strong><\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u041f\u0435\u0440\u0432\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f (1996)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">IHDR, PLTE, tRNS, bKGD, IDAT, IEND, tEXt, zTXt<\/p>\n<\/td>\n<td>\n<p align=\"left\">Grayscale, RGB, Indexed, Grayscale+Alpha, RGBA<\/p>\n<\/td>\n<td>\n<p align=\"left\">1, 2, 4, 8, 16 \u0431\u0438\u0442<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u043d\u0430\u0440\u043d\u0430\u044f (tRNS), \u0430\u043b\u044c\u0444\u0430-\u043a\u0430\u043d\u0430\u043b<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">DEFLATE (LZ77 + \u0425\u0430\u0444\u0444\u043c\u0430\u043d)<\/p>\n<\/td>\n<td>\n<p align=\"left\">tEXt, zTXt (ISO 8859-1)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0412\u0442\u043e\u0440\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f (2003)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">+ iCCP, sRGB, iTXt<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f (APNG \u043d\u0435\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e)<\/p>\n<\/td>\n<td>\n<p align=\"left\">iCCP, sRGB<\/p>\n<\/td>\n<td>\n<p align=\"left\">iTXt (UTF-8, \u0438\u043d\u0442\u0435\u0440\u043d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0422\u0440\u0435\u0442\u044c\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f (2025)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">+ mDCV, cLLI, cICP, acTL, fcTL, fdAT, eXIf<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d HDR (16 \u0431\u0438\u0442)<\/p>\n<\/td>\n<td>\n<p align=\"left\">8, 16 \u0431\u0438\u0442, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u043b\u044f HDR<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439, \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u043e \u0434\u043b\u044f APNG<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f (APNG: acTL, fcTL, fdAT)<\/p>\n<\/td>\n<td>\n<p align=\"left\">+ mDCV, cLLI, cICP (HDR)<\/p>\n<\/td>\n<td>\n<p align=\"left\">+ eXIf (\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 JPEG)<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u041f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438<\/h4>\n<p><strong>\u041f\u0435\u0440\u0432\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f (1996)<\/strong>\u00a0(PNG Introduction):<\/p>\n<ul>\n<li>\n<p><strong>\u041f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430<\/strong>:<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0441\u0442\u043e\u0442\u0430 \u0438 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 \u0440\u0430\u043d\u043d\u0438\u043c\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u043c\u0438 (Netscape Navigator 4.04).<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u0441 \u0430\u043b\u044c\u0444\u0430-\u043a\u0430\u043d\u0430\u043b\u043e\u043c, \u043f\u0440\u0435\u0432\u043e\u0441\u0445\u043e\u0434\u044f\u0449\u0430\u044f \u0431\u0438\u043d\u0430\u0440\u043d\u0443\u044e \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c GIF.<\/p>\n<\/li>\n<li>\n<p>\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0441\u0436\u0430\u0442\u0438\u0435 DEFLATE, \u043b\u0443\u0447\u0448\u0435 LZW \u043d\u0430 10\u201320%.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u043e\u0432 \u0438 \u0438\u043a\u043e\u043d\u043e\u043a.<\/p>\n<\/li>\n<li>\n<p><strong>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f<\/strong>:<\/p>\n<\/li>\n<li>\n<p>\u0422\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0446\u0432\u0435\u0442\u043e\u043c (\u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445).<\/p>\n<\/li>\n<li>\n<p>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 (tEXt\/zTXt, \u0442\u043e\u043b\u044c\u043a\u043e ISO 8859-1).<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0412\u0442\u043e\u0440\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f (2003)<\/strong>:<\/p>\n<ul>\n<li>\n<p><strong>\u041f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430<\/strong>:<\/p>\n<\/li>\n<li>\n<p>\u0422\u043e\u0447\u043d\u0430\u044f \u0446\u0432\u0435\u0442\u043e\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f iCCP \u0438 sRGB, \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0432\u0435\u0431-\u0434\u0438\u0437\u0430\u0439\u043d\u0430 \u0438 \u043f\u0435\u0447\u0430\u0442\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041c\u043d\u043e\u0433\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 (iTXt, UTF-8) \u0434\u043b\u044f \u043c\u0435\u0436\u0434\u0443\u043d\u0430\u0440\u043e\u0434\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u043d\u0430\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 \u043f\u0435\u0440\u0432\u043e\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0435\u0439.<\/p>\n<\/li>\n<li>\n<p><strong>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f<\/strong>:<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435\u0442 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 (APNG \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e).<\/p>\n<\/li>\n<li>\n<p>\u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 HDR \u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 (EXIF).<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0422\u0440\u0435\u0442\u044c\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f (2025)<\/strong>:<\/p>\n<ul>\n<li>\n<p><strong>\u041f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430<\/strong>:<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 HDR (mDCV, cLLI, cICP) \u0434\u043b\u044f \u044f\u0440\u043a\u0438\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0434\u0438\u0441\u043f\u043b\u0435\u044f\u0445.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044f (APNG) \u0441 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430\u043c\u0438 \u0446\u0432\u0435\u0442\u043e\u0432 \u0438 \u0430\u043b\u044c\u0444\u0430-\u043a\u0430\u043d\u0430\u043b\u043e\u043c.<\/p>\n<\/li>\n<li>\n<p>EXIF \u0434\u043b\u044f \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 (\u0434\u0430\u0442\u0430, \u043a\u0430\u043c\u0435\u0440\u0430, \u0433\u0435\u043e\u043b\u043e\u043a\u0430\u0446\u0438\u044f).<\/p>\n<\/li>\n<li>\n<p>\u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u0432\u0435\u0431, \u0438\u0433\u0440 \u0438 \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u0435\u0434\u0438\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f<\/strong>:<\/p>\n<\/li>\n<li>\n<p>\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 (HDR-\u0447\u0430\u043d\u043a\u0438 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a).<\/p>\n<\/li>\n<li>\n<p>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 HDR \u0432 \u0442\u0435\u043a\u0443\u0449\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0445 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, Pillow).<\/p>\n<\/li>\n<li>\n<p>\u0423\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u043e\u0432 \u0434\u043b\u044f APNG \u0438 HDR.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 PNG<\/h4>\n<p>\u0414\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 PNG \u0432 Python \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b (PNG Suite):<\/p>\n<ul>\n<li>\n<p><strong>Pillow<\/strong>: \u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0445 PNG, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f iCCP \u0438 EXIF. \u041f\u0440\u043e\u0441\u0442\u0430 \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438, \u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0430 \u0434\u043b\u044f APNG \u0438 HDR.<\/p>\n<\/li>\n<li>\n<p><strong>pyAPNG, PyGame<\/strong>: \u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0439 (acTL, fcTL, fdAT).<\/p>\n<\/li>\n<li>\n<p><strong>imageio<\/strong>: \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 16-\u0431\u0438\u0442\u043d\u044b\u043c\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c\u0438 \u0438 HDR, \u043d\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u043b\u044f mDCV\/cLLI.<\/p>\n<\/li>\n<li>\n<p><strong>pypng<\/strong>: \u0414\u043b\u044f \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0447\u0430\u043d\u043a\u0430\u043c\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f iTXt \u0438\u043b\u0438 mDCV.<\/p>\n<\/li>\n<\/ul>\n<h3>\u041f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u044b \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f PNG<\/h3>\n<p>\u0424\u043e\u0440\u043c\u0430\u0442 PNG \u043f\u0440\u043e\u0448\u0451\u043b \u043f\u0443\u0442\u044c \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u0435\u043b\u044f GIF \u0432 1996 \u0433\u043e\u0434\u0443 \u0434\u043e \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0434\u043b\u044f \u0432\u0435\u0431-\u0434\u0438\u0437\u0430\u0439\u043d\u0430, \u0438\u0433\u0440 \u0438 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0432 2025 \u0433\u043e\u0434\u0443. \u041a\u0430\u0436\u0434\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u2014 \u043f\u0435\u0440\u0432\u0430\u044f (1996), \u0432\u0442\u043e\u0440\u0430\u044f (2003) \u0438 \u0442\u0440\u0435\u0442\u044c\u044f (2025) \u2014 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u043b\u0430 \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u0434\u0435\u043b\u0430\u044f PNG \u0433\u0438\u0431\u043a\u0438\u043c \u0438 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u043c. \u0421\u0435\u0433\u043e\u0434\u043d\u044f PNG \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c, \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e (APNG), HDR \u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 (EXIF), \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0435\u0433\u043e \u0432\u043e\u0441\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f\u0445. \u042d\u0442\u043e\u0442 \u0440\u0430\u0437\u0434\u0435\u043b \u043f\u043e\u0434\u0432\u043e\u0434\u0438\u0442 \u0438\u0442\u043e\u0433\u0438 \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u0438 PNG, \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0435\u0433\u043e \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0440\u043e\u043b\u044c \u0438 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u044b \u043d\u0430 \u0431\u0443\u0434\u0443\u0449\u0435\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0440\u0438\u043c\u0435\u0440 \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0430 \u00abPNG\u00bb \u0441 \u043f\u0435\u0440\u0435\u043b\u0438\u0432\u0430\u043d\u0438\u0435\u043c \u0446\u0432\u0435\u0442\u043e\u0432 \u0438 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435\u043c. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 PNG \u043a\u0430\u043a \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043b \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0441\u0435\u0434\u0430\u043d\u0430 \u0434\u043e \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043a\u0430\u0440\u0430 \u0441 \u0430\u0432\u0442\u043e\u043f\u0438\u043b\u043e\u0442\u043e\u043c, \u0433\u043e\u0442\u043e\u0432\u043e\u0433\u043e \u043a \u043d\u043e\u0432\u044b\u043c \u0434\u043e\u0440\u043e\u0433\u0430\u043c (W3C PNG Specification (Third Edition, 2025)).<\/p>\n<h4>\u0422\u0435\u043a\u0443\u0449\u0430\u044f \u0440\u043e\u043b\u044c PNG<\/h4>\n<p>\u0421\u0435\u0433\u043e\u0434\u043d\u044f PNG \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u043d\u0438\u0448\u0443, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0441\u0432\u043e\u0438\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c:<\/p>\n<ul>\n<li>\n<p><strong>\u0412\u0435\u0431-\u0434\u0438\u0437\u0430\u0439\u043d<\/strong>: PNG \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0445 \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u043e\u0432, \u0438\u043a\u043e\u043d\u043e\u043a \u0438 \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u0438\u043a\u0435\u0440\u043e\u0432 (APNG). \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043b\u043e\u0433\u043e\u0442\u0438\u043f \u00abPNG\u00bb \u0441 \u043f\u0435\u0440\u0435\u043b\u0438\u0432\u0430\u043d\u0438\u0435\u043c \u0446\u0432\u0435\u0442\u043e\u0432 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f Telegram \u0438\u043b\u0438 \u0432\u0435\u0431-\u0441\u0430\u0439\u0442\u043e\u0432, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0438 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c.<\/p>\n<\/li>\n<li>\n<p><strong>\u0418\u0433\u0440\u044b<\/strong>: HDR-\u0447\u0430\u043d\u043a\u0438 (mDCV, cLLI) \u0434\u0435\u043b\u0430\u044e\u0442 PNG \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u043c \u0434\u043b\u044f \u0442\u0435\u043a\u0441\u0442\u0443\u0440 \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438\u0433\u0440\u043e\u0432\u044b\u0445 \u0434\u0432\u0438\u0436\u043a\u0430\u0445, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Unreal Engine \u0438\u043b\u0438 Unity, \u0433\u0434\u0435 \u044f\u0440\u043a\u0438\u0435 \u0438 \u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u044b\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u044b, \u043a\u0430\u043a \u0432 \u043d\u0430\u0448\u0435\u043c \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0435, \u0443\u0441\u0438\u043b\u0438\u0432\u0430\u044e\u0442 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u043f\u044b\u0442.<\/p>\n<\/li>\n<li>\n<p><strong>\u0424\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f<\/strong>: \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 EXIF \u0432 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c PNG \u043a\u0430\u043a \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0443 JPEG \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0441\u043d\u0438\u043c\u043a\u043e\u0432 \u0441 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0442\u0430\u043a\u0438\u043c\u0438 \u043a\u0430\u043a \u0434\u0430\u0442\u0430 \u0438\u043b\u0438 \u0433\u0435\u043e\u043b\u043e\u043a\u0430\u0446\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u0438\u043b\u044c\u043d\u044b\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b PNG \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 \u0441\u0436\u0430\u0442\u0438\u0435 \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0430\u043b\u044c\u0444\u0430-\u043a\u0430\u043d\u0430\u043b\u0430, \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e \u0438 HDR. \u041f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u0430\u043c\u0438:<\/p>\n<ul>\n<li>\n<p><strong>JPEG<\/strong>: \u041f\u043e\u0442\u0435\u0440\u0438 \u043f\u0440\u0438 \u0441\u0436\u0430\u0442\u0438\u0438, \u043d\u043e \u043c\u0435\u043d\u044c\u0448\u0438\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p><strong>WebP<\/strong>: \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e \u0438 \u0441\u0436\u0430\u0442\u0438\u0435 \u0441 \u043f\u043e\u0442\u0435\u0440\u044f\u043c\u0438\/\u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c, \u043d\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>AVIF<\/strong>: \u0412\u044b\u0441\u043e\u043a\u043e\u0435 \u0441\u0436\u0430\u0442\u0438\u0435, \u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u0445 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0445 (\u043f\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044e \u043d\u0430 2025 \u0433\u043e\u0434).<\/p>\n<\/li>\n<\/ul>\n<h4>\u041f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u044b<\/h4>\n<p>\u0411\u0443\u0434\u0443\u0449\u0435\u0435 PNG \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u043d\u043e\u0432\u044b\u043c\u0438 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f\u043c\u0438 \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f\u043c\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0430:<\/p>\n<ul>\n<li>\n<p><strong>\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u0430\u044f \u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c (AR\/VR)<\/strong>: PNG \u0441 HDR \u0438 APNG \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0442\u0435\u043a\u0441\u0442\u0443\u0440 \u0438 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0439 \u0432 AR\/VR-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430\u0448 \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043b\u043e\u0433\u043e\u0442\u0438\u043f \u00abPNG\u00bb \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 AR-\u043e\u0447\u043a\u0430\u0445 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u044b\u043c\u0438 \u0446\u0432\u0435\u0442\u0430\u043c\u0438 \u0438 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c\u044e.<\/p>\n<\/li>\n<li>\n<p><strong>\u041c\u0430\u0448\u0438\u043d\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435<\/strong>: PNG \u0441 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u0441\u0436\u0430\u0442\u0438\u0435\u043c \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c \u0432\u043e\u0441\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a \u043c\u0430\u0441\u043a\u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438\u043b\u0438 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0435\u0439.<\/p>\n<\/li>\n<li>\n<p><strong>3D-\u0433\u0440\u0430\u0444\u0438\u043a\u0430<\/strong>: \u041f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 PNG \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043c\u043d\u043e\u0433\u043e\u043a\u0430\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u0443\u0440 (\u043d\u043e\u0440\u043c\u0430\u043b\u0438, \u0433\u043b\u0443\u0431\u0438\u043d\u0430) \u043c\u043e\u0436\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0433\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u043c \u0434\u043b\u044f 3D-\u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f<\/strong>:<\/p>\n<ul>\n<li>\n<p>\u0412\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u044b\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u0441\u0436\u0430\u0442\u0438\u044f, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Brotli, \u0432\u043c\u0435\u0441\u0442\u043e DEFLATE, \u0434\u043b\u044f \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0444\u0430\u0439\u043b\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 HDR-\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0434\u043b\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Rec. 2100 \u0438\u043b\u0438 Dolby Vision, \u0434\u043b\u044f \u0435\u0449\u0451 \u0431\u043e\u043b\u0435\u0435 \u044f\u0440\u043a\u0438\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<li>\n<p>\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 WebGPU \u0434\u043b\u044f \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430 \u0442\u0435\u043a\u0441\u0442\u0443\u0440 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u0445.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b<\/strong>:<\/p>\n<ul>\n<li>\n<p>\u041a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0446\u0438\u044f \u0441 AVIF, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043b\u0443\u0447\u0448\u0435\u0435 \u0441\u0436\u0430\u0442\u0438\u0435, \u043d\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043b\u044f \u0448\u0438\u0440\u043e\u043a\u043e\u0433\u043e \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043d\u043e\u0432\u044b\u0445 \u0447\u0430\u043d\u043a\u043e\u0432 (mDCV, cLLI) \u0432 \u0442\u0435\u043a\u0443\u0449\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Pillow \u0438\u043b\u0438 imageio.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438<\/h4>\n<p>\u0414\u043b\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f PNG:<\/p>\n<ul>\n<li>\n<p><strong>\u0412\u044b\u0431\u0438\u0440\u0430\u0439\u0442\u0435 PNG \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u0447 \u0441 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0435\u0439<\/strong>: APNG \u0434\u043b\u044f \u0441\u0442\u0438\u043a\u0435\u0440\u043e\u0432 \u0432 \u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440\u0430\u0445, HDR \u0434\u043b\u044f \u0438\u0433\u0440\u043e\u0432\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u0443\u0440.<\/p>\n<\/li>\n<li>\n<p><strong>\u0421\u043b\u0435\u0434\u0438\u0442\u0435 \u0437\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a<\/strong>: Pillow, pyAPNG \u0438 imageio \u0434\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043d\u043e\u0432\u044b\u0445 \u0447\u0430\u043d\u043a\u043e\u0432 (mDCV, cLLI).<\/p>\n<\/li>\n<li>\n<p><strong>\u042d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u0441 \u043d\u043e\u0432\u044b\u043c\u0438 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f\u043c\u0438<\/strong>: \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 PNG \u0432 AR\/VR \u0434\u043b\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0439 \u0438\u043b\u0438 \u0432 ML \u0434\u043b\u044f \u043c\u0430\u0441\u043e\u043a.<\/p>\n<\/li>\n<\/ul>\n<p>PNG \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u043c \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a \u0432\u044b\u0437\u043e\u0432\u0430\u043c \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439. \u041e\u0442 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u043e\u0432 \u0432 1996 \u0433\u043e\u0434\u0443 \u0434\u043e \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 HDR-\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0432 2025 \u0433\u043e\u0434\u0443, PNG \u0434\u043e\u043a\u0430\u0437\u0430\u043b \u0441\u0432\u043e\u044e \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u044c \u0438 \u0432\u043e\u0441\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u044c. \u0415\u0433\u043e \u0431\u0443\u0434\u0443\u0449\u0435\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 AR\/VR, \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435\u043c \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u044b\u043c \u0441\u0436\u0430\u0442\u0438\u0435\u043c, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0435\u0433\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c. \u042d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u0441 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0435\u0439 \u0438 HDR, \u043a\u0430\u043a \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u043d\u0430\u0448\u0438\u043c \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u043e\u043c \u00abPNG\u00bb, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u043d\u043d\u043e\u0432\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u043b\u044f\u044e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.<\/p>\n<h3>\u0421\u043f\u0438\u0441\u043e\u043a \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b<\/h3>\n<ol>\n<li>\n<p>World Wide Web Consortium. (1996).\u00a0<em>PNG (Portable Network Graphics) Specification, First Edition<\/em>. Retrieved June 29, 2025, from\u00a0<a href=\"https:\/\/www.w3.org\/TR\/REC-png-961001\" rel=\"noopener noreferrer nofollow\">https:\/\/www.w3.org\/TR\/REC-png-961001<\/a><\/p>\n<\/li>\n<li>\n<p>World Wide Web Consortium. (2003).\u00a0<em>PNG (Portable Network Graphics) Specification, Second Edition<\/em>. Retrieved June 29, 2025, from\u00a0<a href=\"https:\/\/www.w3.org\/TR\/2003\/REC-PNG-20031110\/\" rel=\"noopener noreferrer nofollow\">https:\/\/www.w3.org\/TR\/2003\/REC-PNG-20031110\/<\/a><\/p>\n<\/li>\n<li>\n<p>World Wide Web Consortium. (2025).\u00a0<em>PNG (Portable Network Graphics) Specification, Third Edition<\/em>. Retrieved June 29, 2025, from\u00a0<a href=\"https:\/\/www.w3.org\/TR\/png-3\/\" rel=\"noopener noreferrer nofollow\">https:\/\/www.w3.org\/TR\/png-3\/<\/a><\/p>\n<\/li>\n<li>\n<p>Mozilla. (n.d.).\u00a0<em>APNG (Animated Portable Network Graphics) Specification<\/em>. Retrieved June 29, 2025, from\u00a0<a href=\"https:\/\/wiki.mozilla.org\/APNG_Specification\" rel=\"noopener noreferrer nofollow\">https:\/\/wiki.mozilla.org\/APNG_Specification<\/a><\/p>\n<\/li>\n<li>\n<p>PNG Development Group. (n.d.).\u00a0<em>PNG Frequently Asked Questions<\/em>. Retrieved June 29, 2025, from\u00a0<a href=\"https:\/\/www.libpng.org\/pub\/png\/pngfaq.html\" rel=\"noopener noreferrer nofollow\">https:\/\/www.libpng.org\/pub\/png\/pngfaq.html<\/a><\/p>\n<\/li>\n<li>\n<p>PNG Development Group. (n.d.).\u00a0<em>PNG Suite: Test Images<\/em>. Retrieved June 29, 2025, from\u00a0<a href=\"https:\/\/www.libpng.org\/pub\/png\/pngsuite.html\" rel=\"noopener noreferrer nofollow\">https:\/\/www.libpng.org\/pub\/png\/pngsuite.html<\/a><\/p>\n<\/li>\n<li>\n<p>PNG Development Group. (n.d.).\u00a0<em>Introduction to PNG<\/em>. Retrieved June 29, 2025, from\u00a0<a href=\"https:\/\/www.libpng.org\/pub\/png\/pngintro.html\" rel=\"noopener noreferrer nofollow\">https:\/\/www.libpng.org\/pub\/png\/pngintro.html<\/a><\/p>\n<\/li>\n<\/ol>\n<h3>\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/h3>\n<h4>\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 A: \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0442\u0438\u043f\u0438\u0447\u043d\u043e\u0433\u043e PNG-\u0444\u0430\u0439\u043b\u0430<\/h4>\n<p>\u041d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 PNG-\u0444\u0430\u0439\u043b\u0430, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0430 \u00abPNG\u00bb \u0441 \u043f\u0435\u0440\u0435\u043b\u0438\u0432\u0430\u043d\u0438\u0435\u043c \u0446\u0432\u0435\u0442\u043e\u0432 \u0438 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435\u043c (\u0442\u0440\u0435\u0442\u044c\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f, 2025). \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u0447\u0430\u043d\u043a\u043e\u0432 \u0434\u043b\u044f APNG \u0441 HDR \u0438 EXIF.<\/p>\n<pre><code class=\"bash\">PNG Signature: 89 50 4E 47 0D 0A 1A 0A \u0427\u0430\u043d\u043a IHDR: \u0428\u0438\u0440\u0438\u043d\u0430 = 100, \u0412\u044b\u0441\u043e\u0442\u0430 = 100, \u0413\u043b\u0443\u0431\u0438\u043d\u0430 = 16 \u0431\u0438\u0442, \u0422\u0438\u043f = 6 (RGBA), \u0421\u0436\u0430\u0442\u0438\u0435 = DEFLATE \u0427\u0430\u043d\u043a mDCV: \u0426\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043e\u0431\u044a\u0451\u043c \u0438 \u044f\u0440\u043a\u043e\u0441\u0442\u044c \u0434\u043b\u044f HDR (12 \u0431\u0430\u0439\u0442 \u0446\u0432\u0435\u0442\u0430, 4 \u0431\u0430\u0439\u0442\u0430 \u044f\u0440\u043a\u043e\u0441\u0442\u0438) \u0427\u0430\u043d\u043a cLLI: \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0438 \u0441\u0440\u0435\u0434\u043d\u044f\u044f \u044f\u0440\u043a\u043e\u0441\u0442\u044c (MaxCLL, MaxFALL, \u043f\u043e 4 \u0431\u0430\u0439\u0442\u0430) \u0427\u0430\u043d\u043a cICP: \u0423\u043f\u0440\u043e\u0449\u0451\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0446\u0432\u0435\u0442\u0430 \u0434\u043b\u044f HDR \u0427\u0430\u043d\u043a acTL: 6 \u043a\u0430\u0434\u0440\u043e\u0432, \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0446\u0438\u043a\u043b (APNG) \u0427\u0430\u043d\u043a fcTL (x6): \u0417\u0430\u0434\u0435\u0440\u0436\u043a\u0430 = 100 \u043c\u0441, \u0440\u0430\u0437\u043d\u044b\u0435 \u0446\u0432\u0435\u0442\u0430 \u0438 \u0443\u0433\u043b\u044b \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430 \u0427\u0430\u043d\u043a fdAT (x6): \u0421\u0436\u0430\u0442\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u0430\u0434\u0440\u043e\u0432 (\u043f\u0435\u0440\u0435\u043b\u0438\u0432\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0438 \u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0442\u0435\u043a\u0441\u0442 \u00abPNG\u00bb) \u0427\u0430\u043d\u043a eXIf: \u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 (\u0414\u0430\u0442\u0430: 2025-01-01, \u0410\u0432\u0442\u043e\u0440: xAI Studio) \u0427\u0430\u043d\u043a IDAT: \u0414\u0430\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430 \u0427\u0430\u043d\u043a IEND: \u041a\u043e\u043d\u0435\u0446 \u0444\u0430\u0439\u043b\u0430<\/code><\/pre>\n<p>\u042d\u0442\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442, \u043a\u0430\u043a PNG \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e, HDR \u0438 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435, \u0434\u0435\u043b\u0430\u044f \u0435\u0433\u043e \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u043c \u0434\u043b\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Telegram-\u0441\u0442\u0438\u043a\u0435\u0440\u044b \u0438\u043b\u0438 AR-\u0442\u0435\u043a\u0441\u0442\u0443\u0440\u044b (PNG Suite).<\/p>\n<h4>\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 B: \u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u0447\u0430\u043d\u043a\u043e\u0432 PNG<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\"><strong>\u0427\u0430\u043d\u043a<\/strong><\/p>\n<\/th>\n<th>\n<p align=\"left\"><strong>\u0420\u0435\u0434\u0430\u043a\u0446\u0438\u044f<\/strong><\/p>\n<\/th>\n<th>\n<p align=\"left\"><strong>\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/strong><\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">IHDR<\/p>\n<\/td>\n<td>\n<p align=\"left\">1996<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a: \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0433\u043b\u0443\u0431\u0438\u043d\u0430 \u0446\u0432\u0435\u0442\u0430, \u0442\u0438\u043f \u0446\u0432\u0435\u0442\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">PLTE<\/p>\n<\/td>\n<td>\n<p align=\"left\">1996<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0430\u043b\u0438\u0442\u0440\u0430 \u0434\u043b\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0446\u0432\u0435\u0442\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">tRNS<\/p>\n<\/td>\n<td>\n<p align=\"left\">1996<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c (\u0431\u0438\u043d\u0430\u0440\u043d\u0430\u044f \u043c\u0430\u0441\u043a\u0430 \u0438\u043b\u0438 \u0430\u043b\u044c\u0444\u0430-\u043a\u0430\u043d\u0430\u043b)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">IDAT<\/p>\n<\/td>\n<td>\n<p align=\"left\">1996<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0436\u0430\u0442\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f (\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c DEFLATE)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">IEND<\/p>\n<\/td>\n<td>\n<p align=\"left\">1996<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041c\u0430\u0440\u043a\u0435\u0440 \u043a\u043e\u043d\u0446\u0430 \u0444\u0430\u0439\u043b\u0430 PNG<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">tEXt\/zTXt<\/p>\n<\/td>\n<td>\n<p align=\"left\">1996<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 (\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430 ISO 8859-1)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">iCCP<\/p>\n<\/td>\n<td>\n<p align=\"left\">2003<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 ICC \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">sRGB<\/p>\n<\/td>\n<td>\n<p align=\"left\">2003<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 sRGB<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">iTXt<\/p>\n<\/td>\n<td>\n<p align=\"left\">2003<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041c\u0435\u0436\u0434\u0443\u043d\u0430\u0440\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 (UTF-8 \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u0436\u0430\u0442\u0438\u044f)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">mDCV<\/p>\n<\/td>\n<td>\n<p align=\"left\">2025<\/p>\n<\/td>\n<td>\n<p align=\"left\">Mastering Display Color Volume &#8212; \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0433\u043e \u043e\u0431\u044a\u0451\u043c\u0430 \u0434\u043b\u044f HDR<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">cLLI<\/p>\n<\/td>\n<td>\n<p align=\"left\">2025<\/p>\n<\/td>\n<td>\n<p align=\"left\">Content Light Level Information &#8212; \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u044f\u0440\u043a\u043e\u0441\u0442\u0438 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0434\u043b\u044f HDR<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">cICP<\/p>\n<\/td>\n<td>\n<p align=\"left\">2025<\/p>\n<\/td>\n<td>\n<p align=\"left\">Coding-Independent Code Points &#8212; \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0435 \u043e\u0442 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438 \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">acTL<\/p>\n<\/td>\n<td>\n<p align=\"left\">2025<\/p>\n<\/td>\n<td>\n<p align=\"left\">Animation Control &#8212; \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 (APNG)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">fcTL<\/p>\n<\/td>\n<td>\n<p align=\"left\">2025<\/p>\n<\/td>\n<td>\n<p align=\"left\">Frame Control &#8212; \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043a\u0430\u0434\u0440\u043e\u0432 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 (APNG)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">fdAT<\/p>\n<\/td>\n<td>\n<p align=\"left\">2025<\/p>\n<\/td>\n<td>\n<p align=\"left\">Frame Data &#8212; \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u0430\u0434\u0440\u043e\u0432 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 (APNG)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">eXIf<\/p>\n<\/td>\n<td>\n<p align=\"left\">2025<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 EXIF (\u043a\u0430\u043a \u0432 JPEG)<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u042d\u0442\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043b\u0443\u0436\u0438\u0442 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u044b\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u043c \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u0441 PNG \u0432 Python \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0445 (<a href=\"https:\/\/www.libpng.org\/pub\/png\/pngfaq.html\" rel=\"noopener noreferrer nofollow\">PNG FAQ<\/a>).<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/924638\/\"> https:\/\/habr.com\/ru\/articles\/924638\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h3>TL;DR<\/h3>\n<h4>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h4>\n<p>\u041d\u0435\u0434\u0430\u0432\u043d\u043e \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0442\u0440\u0435\u0442\u044c\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 Portable Network Graphics (PNG) 2025 \u0433\u043e\u0434\u0430, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u0430\u044f World Wide Web Consortium (W3C), \u043f\u0440\u0438\u0432\u043b\u0435\u043a\u043b\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043a \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 (<a href=\"https:\/\/www.w3.org\/TR\/png-3\/\" rel=\"noopener noreferrer nofollow\">W3C PNG Specification (Third Edition, 2025)<\/a>). \u0420\u0430\u043d\u0435\u0435 \u044f, \u043a\u0430\u043a \u0438 \u043c\u043d\u043e\u0433\u0438\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b PNG, \u043d\u0435 \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u044f\u0441\u044c \u043e \u0435\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0438 \u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f\u0445. \u0423\u0433\u043b\u0443\u0431\u0438\u0432\u0448\u0438\u0441\u044c \u0432 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0439 PNG (1996, 2003, 2025), \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u043e\u0431\u0449\u0438\u0442\u044c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438 \u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0432\u0435\u0431-\u0434\u0438\u0437\u0430\u0439\u043d\u0430, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u0433\u0440 \u0438 \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u0435\u0434\u0438\u0430. \u0421\u0442\u0430\u0442\u044c\u044f \u043d\u0435 \u043f\u0440\u0435\u0442\u0435\u043d\u0434\u0443\u0435\u0442 \u043d\u0430 \u0438\u0441\u0447\u0435\u0440\u043f\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u043e\u0445\u0432\u0430\u0442, \u043d\u043e \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0441\u044f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u043e\u0431\u0437\u043e\u0440 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043d\u043d\u044b\u0445, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445. \u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442\u0441\u044f \u043b\u044e\u0431\u044b\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u044f \u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u043a \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438. \u0412\u0435\u0441\u044c \u043a\u043e\u0434, \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 \u043d\u0438\u0436\u0435, \u0432\u044b\u043b\u043e\u0436\u0438\u043b \u0432\u00a0<a href=\"https:\/\/github.com\/pulichkin\/pngsamples\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439<\/a>. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0442\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c \u0438 \u0443\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c.<\/p>\n<figure class=\"full-width\"><\/figure>\n<hr\/>\n<h3>\u041f\u043e\u0447\u0435\u043c\u0443 PNG \u0441\u0442\u0430\u043b \u0437\u0430\u043c\u0435\u043d\u043e\u0439 GIF?<\/h3>\n<figure class=\"full-width\"><\/figure>\n<p>\u0424\u043e\u0440\u043c\u0430\u0442 PNG (Portable Network Graphics) \u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u043d \u0432 1995 \u0433\u043e\u0434\u0443 \u043a\u0430\u043a \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u0430\u044f \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 \u0444\u043e\u0440\u043c\u0430\u0442\u0443 GIF (Graphics Interchange Format), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u043f\u0430\u0442\u0435\u043d\u0442\u043d\u044b\u043c\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u043c\u0438. GIF, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0439 CompuServe \u0432 1987 \u0433\u043e\u0434\u0443, \u0431\u044b\u043b \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u0435\u043d \u0432 \u0440\u0430\u043d\u043d\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0435 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u0438 \u0441\u0436\u0430\u0442\u0438\u044f \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c, \u043d\u043e \u0432 1994 \u0433\u043e\u0434\u0443 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Unisys \u043d\u0430\u0447\u0430\u043b\u0430 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c \u0440\u043e\u044f\u043b\u0442\u0438 \u0437\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0441\u0436\u0430\u0442\u0438\u044f LZW (Lempel-Ziv-Welch), \u0447\u0442\u043e \u0432\u044b\u0437\u0432\u0430\u043b\u043e \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u044b \u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043a\u0430\u043c\u043f\u0430\u043d\u0438\u044e \u00abBurn All GIFs\u00bb \u0432 1999 \u0433\u043e\u0434\u0443 (\u00ab\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0430 PNG\u00bb). PNG \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u0440\u0435\u0448\u0435\u043d\u0438\u0435: \u043f\u0430\u0442\u0435\u043d\u0442\u043d\u043e-\u0447\u0438\u0441\u0442\u043e\u0435 \u0441\u0436\u0430\u0442\u0438\u0435, \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u0441 \u0430\u043b\u044c\u0444\u0430-\u043a\u0430\u043d\u0430\u043b\u043e\u043c \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0446\u0432\u0435\u0442\u043e\u0432. \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u044e PNG \u043e\u0442 \u043f\u0435\u0440\u0432\u043e\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438 1996 \u0433\u043e\u0434\u0430 \u0434\u043e \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438 2025 \u0433\u043e\u0434\u0430, \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044f \u0438\u0445 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0430 \u2014 \u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 50 x 50 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u043d\u0430 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u043c \u0444\u043e\u043d\u0435 100 x 100 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u2014 \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043d\u0430 Python.<\/p>\n<p>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 GIF \u043d\u0430\u0447\u0430\u043b\u0430\u0441\u044c \u0432 1993 \u0433\u043e\u0434\u0443, \u043a\u043e\u0433\u0434\u0430 Unisys, \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0430\u044f \u043f\u0430\u0442\u0435\u043d\u0442\u043e\u043c \u043d\u0430 LZW (US Patent 4,558,302, 1985), \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0430, \u0447\u0442\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 GIF, \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043b\u0430\u0442\u0438\u0442\u044c \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u043e\u043d\u043d\u044b\u0435 \u043e\u0442\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f. \u041a \u0434\u0435\u043a\u0430\u0431\u0440\u044e 1994 \u0433\u043e\u0434\u0430 CompuServe, \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c GIF, \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u043b\u0430 \u044d\u0442\u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f, \u0447\u0442\u043e \u0432\u044b\u0437\u0432\u0430\u043b\u043e \u0432\u043e\u0437\u043c\u0443\u0449\u0435\u043d\u0438\u0435 \u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435. \u0412\u0435\u0431-\u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0438\u0435 GIF \u0434\u043b\u044f \u043a\u043d\u043e\u043f\u043e\u043a, \u0438\u043a\u043e\u043d\u043e\u043a \u0438 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0439, \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u0438\u0441\u043a\u0430\u0442\u044c \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0443. \u041a\u0430\u043c\u043f\u0430\u043d\u0438\u044f \u00abBurn All GIFs\u00bb, \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u0430\u044f 5 \u043d\u043e\u044f\u0431\u0440\u044f 1999 \u0433\u043e\u0434\u0430, \u043f\u0440\u0438\u0437\u044b\u0432\u0430\u043b\u0430 \u043e\u0442\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043e\u0442 GIF \u0432 \u0437\u043d\u0430\u043a \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0430 \u043f\u0440\u043e\u0442\u0438\u0432 \u043f\u0430\u0442\u0435\u043d\u0442\u043d\u044b\u0445 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 (PNG: The Definitive Guide, Chapter 7).<\/p>\n<p>4 \u044f\u043d\u0432\u0430\u0440\u044f 1995 \u0433\u043e\u0434\u0430 \u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u0422\u043e\u043c\u0430\u0441 \u0411\u0443\u0442\u0435\u043b\u043b \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b \u0432 \u0433\u0440\u0443\u043f\u043f\u0430\u0445 Usenet, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a <a href=\"http:\/\/comp.graphics\" rel=\"noopener noreferrer nofollow\">comp.graphics<\/a> \u0438 comp.compression, \u043f\u0435\u0440\u0432\u044b\u0439 \u0447\u0435\u0440\u043d\u043e\u0432\u0438\u043a \u043d\u043e\u0432\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430, \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u043d\u043e\u0433\u043e PBF (Portable Bitmap Format). \u0421\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u043e \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0432 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438:<\/p>\n<ul>\n<li>\n<p><strong>\u0421\u0436\u0430\u0442\u0438\u0435 DEFLATE<\/strong>: \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0438 \u043f\u0430\u0442\u0435\u043d\u0442\u043d\u043e-\u0447\u0438\u0441\u0442\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0439 \u0416\u0430\u043d\u043e\u043c-\u041b\u0443 \u0413\u0430\u0439\u0438 \u0438 \u041c\u0430\u0440\u043a\u043e\u043c \u0410\u0434\u043b\u0435\u0440\u043e\u043c.<\/p>\n<\/li>\n<li>\n<p><strong>\u041f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c<\/strong>: \u0430\u043b\u044c\u0444\u0430-\u043a\u0430\u043d\u0430\u043b \u0434\u043b\u044f \u043f\u043b\u0430\u0432\u043d\u043e\u0439 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u0438, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u0438 GIF.<\/p>\n<\/li>\n<li>\n<p><strong>24-\u0431\u0438\u0442\u043d\u044b\u0435 \u0446\u0432\u0435\u0442\u0430<\/strong>: \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 16,7 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430 \u043e\u0442\u0442\u0435\u043d\u043a\u043e\u0432 \u043f\u0440\u043e\u0442\u0438\u0432 256 \u0446\u0432\u0435\u0442\u043e\u0432 \u0432 GIF.<\/p>\n<\/li>\n<li>\n<p><strong>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 PNG<\/strong>: \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043e \u041e\u043b\u0438\u0432\u0435\u0440\u043e\u043c \u0424\u0440\u043e\u043c\u043c\u0435 \u043a\u0430\u043a \u00abPNG\u2019s Not GIF\u00bb, \u043f\u043e\u0434\u0447\u0451\u0440\u043a\u0438\u0432\u0430\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u0443 \u043e\u0442 \u043f\u0430\u0442\u0435\u043d\u0442\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<p>\u041a 7 \u0444\u0435\u0432\u0440\u0430\u043b\u044f 1995 \u0433\u043e\u0434\u0430 CompuServe \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0430 PNG \u043f\u0440\u0435\u0435\u043c\u043d\u0438\u043a\u043e\u043c GIF. \u041a 7 \u043c\u0430\u0440\u0442\u0430 1995 \u0433\u043e\u0434\u0430, \u043f\u043e\u0441\u043b\u0435 \u0434\u0435\u0432\u044f\u0442\u0438 \u0447\u0435\u0440\u043d\u043e\u0432\u0438\u043a\u043e\u0432, \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0431\u044b\u043b\u0430 \u0437\u0430\u043c\u043e\u0440\u043e\u0436\u0435\u043d\u0430. 1 \u043c\u0430\u044f 1995 \u0433\u043e\u0434\u0430 \u0432\u044b\u0448\u043b\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 zlib (\u0434\u043b\u044f \u0441\u0436\u0430\u0442\u0438\u044f DEFLATE) \u0438 libpng (\u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 PNG), \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0416\u0430\u043d\u043e\u043c-\u041b\u0443 \u0413\u0430\u0439\u0438, \u041c\u0430\u0440\u043a\u043e\u043c \u0410\u0434\u043b\u0435\u0440\u043e\u043c \u0438 \u0413\u0430\u0435\u043c \u042d\u0440\u0438\u043a\u043e\u043c \u0428\u0430\u043b\u043d\u0430\u0442\u043e\u043c. 1 \u043e\u043a\u0442\u044f\u0431\u0440\u044f 1996 \u0433\u043e\u0434\u0430 PNG \u0441\u0442\u0430\u043b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u043c W3C, \u0430 \u043a 1997 \u0433\u043e\u0434\u0443 \u0435\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u044b, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a Internet Explorer 4.0 \u0438 Netscape Navigator 4.04 (\u00ab\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0430 PNG\u00bb).<\/p>\n<h4>DEFLATE \u043f\u0440\u043e\u0442\u0438\u0432 LZW: \u0412 \u0447\u0451\u043c \u0440\u0430\u0437\u043d\u0438\u0446\u0430?<\/h4>\n<figure class=\"full-width\"><\/figure>\n<p>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0441\u0436\u0430\u0442\u0438\u044f LZW \u0438 DEFLATE \u2014 \u044d\u0442\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u043e\u0432, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439. LZW, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0432 GIF, \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u0437\u0430\u043c\u0435\u043d\u044f\u044f \u0438\u0445 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u043c\u0438 \u043a\u043e\u0434\u0430\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0432 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u00abABABAB\u00bb, LZW \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 \u0435\u0451 \u043e\u0434\u043d\u0438\u043c \u043a\u043e\u0434\u043e\u043c, \u0447\u0442\u043e \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 \u043c\u0435\u0441\u0442\u043e. \u041e\u0434\u043d\u0430\u043a\u043e LZW \u0431\u044b\u043b \u0437\u0430\u043f\u0430\u0442\u0435\u043d\u0442\u043e\u0432\u0430\u043d Unisys, \u0447\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u043b\u043e \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 (Linux Journal: PNG \u2014 A Replacement for GIF).<\/p>\n<p>DEFLATE, \u043f\u0440\u0438\u043c\u0435\u043d\u0451\u043d\u043d\u044b\u0439 \u0432 PNG, \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u0443\u0435\u0442 \u0434\u0432\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u0430: \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0425\u0430\u0444\u0444\u043c\u0430\u043d\u0430 \u0438 \u0441\u0436\u0430\u0442\u0438\u0435 LZ77. LZ77 \u0438\u0449\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 \u0438\u0445 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438 \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f, \u0430 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430 \u0425\u0430\u0444\u0444\u043c\u0430\u043d\u0430 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u043a\u043e\u0434\u044b \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0449\u0438\u043c\u0441\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c. \u042d\u0442\u043e \u043a\u0430\u043a \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c \u0447\u0435\u043c\u043e\u0434\u0430\u043d: LZ77 \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u0445\u043e\u0436\u0438\u0435 \u0432\u0435\u0449\u0438 \u0432\u043c\u0435\u0441\u0442\u0435, \u0430 \u0425\u0430\u0444\u0444\u043c\u0430\u043d \u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u043b\u0438\u0448\u043d\u0438\u0435 \u0431\u0438\u0440\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0451 \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u043e \u043c\u0435\u043d\u044c\u0448\u0435 \u043c\u0435\u0441\u0442\u0430. DEFLATE \u043e\u0431\u044b\u0447\u043d\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043b\u0443\u0447\u0448\u0435\u0435 \u0441\u0436\u0430\u0442\u0438\u0435 (\u043d\u0430 10\u201320% \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0435\u0435 LZW \u0434\u043b\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439) \u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043f\u0430\u0442\u0435\u043d\u0442\u043d\u044b\u0445 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439, \u0447\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b\u043e \u0435\u0433\u043e \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u0434\u043b\u044f PNG (PNG FAQ).<\/p>\n<p>PNG \u043f\u0440\u0435\u0432\u0437\u043e\u0448\u0451\u043b GIF \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0430 \u2014 \u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 \u043d\u0430 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u043c \u0444\u043e\u043d\u0435 \u2014 GIF \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u043b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0446\u0432\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u043c, \u0447\u0442\u043e \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043b\u043e \u043a \u0440\u0432\u0430\u043d\u044b\u043c \u043a\u0440\u0430\u044f\u043c. PNG \u0441 \u0430\u043b\u044c\u0444\u0430-\u043a\u0430\u043d\u0430\u043b\u043e\u043c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u043b \u043f\u043b\u0430\u0432\u043d\u0443\u044e \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u044f \u044d\u0444\u0444\u0435\u043a\u0442 \u0441\u0442\u0435\u043a\u043b\u0430, \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b 24-\u0431\u0438\u0442\u043d\u044b\u0435 \u0446\u0432\u0435\u0442\u0430, \u0447\u0442\u043e \u0434\u0430\u0432\u0430\u043b\u043e \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u043e\u0442\u0442\u0435\u043d\u043a\u043e\u0432 \u0432\u043c\u0435\u0441\u0442\u043e 256. DEFLATE \u0442\u0430\u043a\u0436\u0435 \u0441\u0436\u0438\u043c\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0435\u0435, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e. \u042d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b\u043e PNG \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u043c \u0434\u043b\u044f \u0432\u0435\u0431-\u0433\u0440\u0430\u0444\u0438\u043a\u0438, \u0442\u0430\u043a\u043e\u0439 \u043a\u0430\u043a \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u044b \u043d\u0430 \u0441\u0430\u0439\u0442\u0430\u0445 Yahoo \u0438\u043b\u0438 Netscape \u0432 90-\u0445 (PNG Introduction).<\/p>\n<p>PNG \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043b \u0447\u0435\u0440\u0435\u0437 \u0442\u0440\u0438 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438. \u041f\u0435\u0440\u0432\u0430\u044f (1996) \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b\u0430 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c\u044e (W3C PNG Specification (First Edition, 1996)). \u0412\u0442\u043e\u0440\u0430\u044f (2003) \u0443\u043b\u0443\u0447\u0448\u0438\u043b\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0446\u0432\u0435\u0442\u0430\u043c\u0438 \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 UTF-8 (W3C PNG Specification (Second Edition, 2003)). \u0422\u0440\u0435\u0442\u044c\u044f (2025) \u0432\u0432\u0435\u043b\u0430 HDR, \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 (APNG) \u0438 EXIF-\u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435, \u0441\u0434\u0435\u043b\u0430\u0432 PNG \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u043c \u0434\u043b\u044f \u0432\u0435\u0431-\u0434\u0438\u0437\u0430\u0439\u043d\u0430, \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0438 \u0438\u0433\u0440 (W3C PNG Specification (Third Edition, 2025)). \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u043a\u0430\u0436\u0435\u0442, \u043a\u0430\u043a PNG \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0440\u0438\u043c\u0435\u0440 \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0430 \u2014 \u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430, \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u0432 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e, \u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0442 Python-\u043a\u043e\u0434 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0430\u043a\u0438\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u0447\u0442\u043e\u0431\u044b \u043b\u044e\u0431\u043e\u0439 \u043c\u043e\u0433 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 PNG.<\/p>\n<h3>\u041f\u0435\u0440\u0432\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f (1996): \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u043b\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439<\/h3>\n<p>\u041a\u043e\u0433\u0434\u0430 \u0432 1996 \u0433\u043e\u0434\u0443 \u0444\u043e\u0440\u043c\u0430\u0442 PNG (Portable Network Graphics) \u0431\u044b\u043b \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d \u043a\u043e\u043d\u0441\u043e\u0440\u0446\u0438\u0443\u043c\u043e\u043c W3C, \u043e\u043d \u0441\u0442\u0430\u043b \u043e\u0442\u0432\u0435\u0442\u043e\u043c \u043d\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044c \u0432 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0439 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0435 GIF, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u043c\u0443 \u043f\u0430\u0442\u0435\u043d\u0442\u0430\u043c\u0438 \u043d\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c LZW (W3C PNG Specification (First Edition, 1996)). \u041f\u0435\u0440\u0432\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f PNG \u0431\u044b\u043b\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u0438, \u0441\u0436\u0430\u0442\u0438\u044f \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c \u0438 \u0448\u0438\u0440\u043e\u043a\u043e\u0433\u043e \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 \u0446\u0432\u0435\u0442\u043e\u0432. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 PNG \u043a\u0430\u043a \u043a\u043e\u0440\u043e\u0431\u043a\u0443 \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u2014 \u044d\u0442\u043e \u043a\u0443\u0441\u043e\u0447\u0435\u043a \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0449\u0438\u0439 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443. \u042d\u0442\u0438 \u043a\u0443\u0441\u043e\u0447\u043a\u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0447\u0430\u043d\u043a\u0430\u043c\u0438, \u0438 \u0432 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c, \u043a\u0430\u043a \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0430 \u2014 \u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 50 x 50 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u043d\u0430 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u043c \u0444\u043e\u043d\u0435 100 x 100 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439.<\/p>\n<h4>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 PNG: \u0447\u0430\u043d\u043a\u0438 \u043a\u0430\u043a \u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438<\/h4>\n<figure class=\"full-width\"><\/figure>\n<p>PNG-\u0444\u0430\u0439\u043b \u2014 \u044d\u0442\u043e \u043a\u0430\u043a \u043f\u0430\u0437\u043b, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u0443\u0441\u043e\u0447\u0435\u043a (\u0447\u0430\u043d\u043a) \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0441\u0432\u043e\u044e \u0447\u0430\u0441\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0427\u0430\u043d\u043a\u0438 \u2014 \u044d\u0442\u043e \u0431\u043b\u043e\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0435, \u0446\u0432\u0435\u0442\u0430\u0445, \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u0438 \u0438\u043b\u0438 \u0441\u0430\u043c\u0438\u0445 \u043f\u0438\u043a\u0441\u0435\u043b\u044f\u0445. \u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438 PNG, \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0432 1996 \u0433\u043e\u0434\u0443, \u0431\u044b\u043b\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0447\u0430\u043d\u043a\u0438, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 (PNG: The Definitive Guide, Chapter 7). \u0412\u043e\u0442 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0447\u0430\u043d\u043a\u0438 \u0438 \u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p><strong>IHDR (Image Header)<\/strong>: \u044d\u0442\u043e \u043a\u0430\u043a \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f, \u0433\u0434\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043e, \u043a\u0430\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0438 \u043a\u0430\u043a \u0435\u0451 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c. IHDR \u0437\u0430\u0434\u0430\u0451\u0442 \u0448\u0438\u0440\u0438\u043d\u0443, \u0432\u044b\u0441\u043e\u0442\u0443, \u0433\u043b\u0443\u0431\u0438\u043d\u0443 \u0446\u0432\u0435\u0442\u0430, \u0442\u0438\u043f \u0446\u0432\u0435\u0442\u0430, \u043c\u0435\u0442\u043e\u0434 \u0441\u0436\u0430\u0442\u0438\u044f (\u0432\u0441\u0435\u0433\u0434\u0430 DEFLATE), \u043c\u0435\u0442\u043e\u0434 \u0444\u0438\u043b\u044c\u0442\u0440\u0430 (\u043e\u0431\u044b\u0447\u043d\u043e 0) \u0438 \u043c\u0435\u0442\u043e\u0434 \u0447\u0435\u0440\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f (0 \u0434\u043b\u044f \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u0447\u0435\u0440\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f).<\/p>\n<\/li>\n<li>\n<p><strong>PLTE (Palette)<\/strong>: \u0435\u0441\u043b\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0446\u0432\u0435\u0442\u043e\u0432 (\u0434\u043e 256), PLTE \u0445\u0440\u0430\u043d\u0438\u0442 \u043f\u0430\u043b\u0438\u0442\u0440\u0443 \u043a\u0430\u043a \u043a\u043e\u0440\u043e\u0431\u043a\u0443 \u0441 \u043a\u0440\u0430\u0441\u043a\u0430\u043c\u0438, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u0430\u044f \u043a\u0440\u0430\u0441\u043a\u0430 \u2014 \u044d\u0442\u043e \u0442\u0440\u0438 \u0431\u0430\u0439\u0442\u0430 (R, G, B).<\/p>\n<\/li>\n<li>\n<p><strong>tRNS (Transparency)<\/strong>: \u2014 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0444\u043e\u043d, \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u043b\u0438 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u043c\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>bKGD (Background)<\/strong>: \u0437\u0430\u0434\u0430\u0451\u0442 \u0446\u0432\u0435\u0442 \u0444\u043e\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439.<\/p>\n<\/li>\n<li>\n<p><strong>IDAT (Image Data)<\/strong>: \u044d\u0442\u043e \u0441\u0435\u0440\u0434\u0446\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0441\u0436\u0430\u0442\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c DEFLATE.<\/p>\n<\/li>\n<li>\n<p><strong>IEND (Image End)<\/strong>: \u043f\u0443\u0441\u0442\u043e\u0439 \u0447\u0430\u043d\u043a, \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0438\u0439 \u043a\u043e\u043d\u0435\u0446 \u0444\u0430\u0439\u043b\u0430, \u043a\u0430\u043a \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043a\u043d\u0438\u0433\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0430 \u2014 \u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 200 x 200 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u043d\u0430 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u043c \u0444\u043e\u043d\u0435 400 x 400 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u2014 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0444\u0430\u0439\u043b\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<ul>\n<li>\n<p><strong>IHDR<\/strong>: \u0448\u0438\u0440\u0438\u043d\u0430 = 400, \u0432\u044b\u0441\u043e\u0442\u0430 = 400, \u0433\u043b\u0443\u0431\u0438\u043d\u0430 \u0446\u0432\u0435\u0442\u0430 = 8 \u0431\u0438\u0442, \u0442\u0438\u043f \u0446\u0432\u0435\u0442\u0430 = 6 (RGBA), \u043c\u0435\u0442\u043e\u0434 \u0441\u0436\u0430\u0442\u0438\u044f = 0, \u043c\u0435\u0442\u043e\u0434 \u0444\u0438\u043b\u044c\u0442\u0440\u0430 = 0, \u043c\u0435\u0442\u043e\u0434 \u0447\u0435\u0440\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f = 0.<\/p>\n<\/li>\n<li>\n<p><strong>tRNS<\/strong>: \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439 \u0444\u043e\u043d (\u0430\u043b\u044c\u0444\u0430-\u043a\u0430\u043d\u0430\u043b = 0 \u0434\u043b\u044f \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0444\u043e\u043d\u0430).<\/p>\n<\/li>\n<li>\n<p><strong>IDAT<\/strong>: \u0441\u0436\u0430\u0442\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 (\u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442: R = 255, G = 0, B = 0, A = 255; \u0444\u043e\u043d: A = 0).<\/p>\n<\/li>\n<li>\n<p><strong>IEND<\/strong>: \u043a\u043e\u043d\u0435\u0446 \u0444\u0430\u0439\u043b\u0430.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0426\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u0442\u0438\u043f\u044b \u0438 \u0433\u043b\u0443\u0431\u0438\u043d\u0430 \u0446\u0432\u0435\u0442\u0430<\/h4>\n<figure class=\"full-width\"><\/figure>\n<p>PNG \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0446\u0432\u0435\u0442\u043e\u0432, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0435\u0433\u043e \u0433\u0438\u0431\u043a\u0438\u043c \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 (PNG FAQ). \u041f\u0435\u0440\u0432\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0430 \u043f\u044f\u0442\u044c \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432:<\/p>\n<ul>\n<li>\n<p><strong>\u0422\u0438\u043f 0 (Grayscale)<\/strong>: \u0447\u0451\u0440\u043d\u043e-\u0431\u0435\u043b\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u2014 \u044d\u0442\u043e \u043e\u0442\u0442\u0435\u043d\u043e\u043a \u0441\u0435\u0440\u043e\u0433\u043e. \u0413\u043b\u0443\u0431\u0438\u043d\u0430 \u0446\u0432\u0435\u0442\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c 1, 2, 4, 8 \u0438\u043b\u0438 16 \u0431\u0438\u0442, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0442 2 \u0434\u043e 65 536 \u043e\u0442\u0442\u0435\u043d\u043a\u043e\u0432 \u0441\u0435\u0440\u043e\u0433\u043e.<\/p>\n<\/li>\n<li>\n<p><strong>\u0422\u0438\u043f 2 (RGB)<\/strong>: \u043f\u043e\u043b\u043d\u043e\u0446\u0432\u0435\u0442\u043d\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e, \u0437\u0435\u043b\u0451\u043d\u043e\u0433\u043e \u0438 \u0441\u0438\u043d\u0435\u0433\u043e \u043a\u0430\u043d\u0430\u043b\u043e\u0432 (8 \u0438\u043b\u0438 16 \u0431\u0438\u0442 \u043d\u0430 \u043a\u0430\u043d\u0430\u043b).<\/p>\n<\/li>\n<li>\n<p><strong>\u0422\u0438\u043f 3 (Indexed)<\/strong>: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043f\u0430\u043b\u0438\u0442\u0440\u0443 \u0434\u043e 256 \u0446\u0432\u0435\u0442\u043e\u0432, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0438\u043d\u0434\u0435\u043a\u0441 \u0432 \u043f\u0430\u043b\u0438\u0442\u0440\u0435 PLTE. \u0413\u043b\u0443\u0431\u0438\u043d\u0430 \u0446\u0432\u0435\u0442\u0430 \u2014 1, 2, 4 \u0438\u043b\u0438 8 \u0431\u0438\u0442.<\/p>\n<\/li>\n<li>\n<p><strong>\u0422\u0438\u043f 4 (Grayscale with Alpha)<\/strong>: \u0441\u0435\u0440\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441 \u0430\u043b\u044c\u0444\u0430-\u043a\u0430\u043d\u0430\u043b\u043e\u043c \u0434\u043b\u044f \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u0438, 8 \u0438\u043b\u0438 16 \u0431\u0438\u0442 \u043d\u0430 \u043a\u0430\u043d\u0430\u043b.<\/p>\n<\/li>\n<li>\n<p><strong>\u0422\u0438\u043f 6 (RGBA)<\/strong>: \u043f\u043e\u043b\u043d\u043e\u0446\u0432\u0435\u0442\u043d\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441 \u0430\u043b\u044c\u0444\u0430-\u043a\u0430\u043d\u0430\u043b\u043e\u043c, 8 \u0438\u043b\u0438 16 \u0431\u0438\u0442 \u043d\u0430 \u043a\u0430\u043d\u0430\u043b.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0442\u0438\u043f 6 (RGBA, 8 \u0431\u0438\u0442), \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u2014 \u044d\u0442\u043e 4 \u0431\u0430\u0439\u0442\u0430: \u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u00ae, \u0437\u0435\u043b\u0451\u043d\u044b\u0439 (G), \u0441\u0438\u043d\u0438\u0439 (B) \u0438 \u0430\u043b\u044c\u0444\u0430 (A). \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f (255, 0, 0, 255) \u2014 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0435\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439 \u043a\u0440\u0430\u0441\u043d\u044b\u0439, \u0430 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u0444\u043e\u043d\u0430 \u2014 (0, 0, 0, 0) \u2014 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439. \u0412 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u0441 GIF, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d 256 \u0446\u0432\u0435\u0442\u0430\u043c\u0438 \u0438 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c\u044e (\u0446\u0432\u0435\u0442 \u043b\u0438\u0431\u043e \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439, \u043b\u0438\u0431\u043e \u043d\u0435\u0442), PNG \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043f\u043b\u0430\u0432\u043d\u0443\u044e \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u0438 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0446\u0432\u0435\u0442\u043e\u0432 (16,7 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430 \u0434\u043b\u044f 24-\u0431\u0438\u0442\u043d\u043e\u0433\u043e RGB), \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0435\u0433\u043e \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u0434\u043b\u044f \u0432\u0435\u0431-\u0433\u0440\u0430\u0444\u0438\u043a\u0438 (Linux Journal: PNG \u2014 A Replacement for GIF).<\/p>\n<h4>\u041f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u0438 \u0441\u0436\u0430\u0442\u0438\u0435 \u0432 PNG<\/h4>\n<figure class=\"full-width\">\n<div><figcaption>3<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0442\u0438\u043f 6 (RGBA, 8 \u0431\u0438\u0442), \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u2014 \u044d\u0442\u043e 4 \u0431\u0430\u0439\u0442\u0430: \u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u00ae, \u0437\u0435\u043b\u0451\u043d\u044b\u0439 (G), \u0441\u0438\u043d\u0438\u0439 (B) \u0438 \u0430\u043b\u044c\u0444\u0430 (A). \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-465952","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/465952","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=465952"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/465952\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=465952"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=465952"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=465952"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}