Π Π°Π·Π½ΠΎΠ΅

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° png Ρ„Π°ΠΉΠ»Π°: Sorry, this page can’t be found.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π€ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹: PNG

Π€ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹: PNG


Π’Π°ΠΊΠΆΠ΅ извСстСн ΠΊΠ°ΠΊ: Portable Network Graphics Format












ВипРастровый
Π¦Π²Π΅Ρ‚Π°ΠžΡ‚ 1-Π±ΠΈΡ‚Π° Π΄ΠΎ 48-Π±ΠΈΡ‚
Π‘ΠΆΠ°Ρ‚ΠΈΠ΅Π Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ LZ77
ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ изобраТСния2Π“ x 2Π“ пиксСлСй
Π€ΠΎΡ€ΠΌΠ°Ρ‚ чисСл«Π‘Ρ‚Π°Ρ€ΡˆΠΈΠΉ Π² младшСм»
Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ изобраТСния Π² файлСНСт
РазработчикВомас Π‘ΡƒΡ‚Π΅Π»Π», Π’ΠΎΠΌ Π›Π΅ΠΉΠ½ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅
ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹Π’ΡΠ΅
ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈΠœΠ½ΠΎΠ³ΠΈΠΌΠΈ коммСрчСскими ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ ΠΈ бСсплатными ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ с коммСрчСской Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ
Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅GIF

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅:

Π€ΠΎΡ€ΠΌΠ°Ρ‚ PNG позволяСт Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΡŒ изобраТСния ΠΎΡ‚ Π΄Π²ΡƒΡ…ΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… Π΄ΠΎ 48-Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ…
ΠΏΠΎΠ»Π½ΠΎΡ†Π²Π΅Ρ‚Π½Ρ‹Ρ…. Он ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ графичСских Π΄Π°Π½Π½Ρ‹Ρ… Π² сСти.


ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:

Π€ΠΎΡ€ΠΌΠ°Ρ‚ PNG Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½, ΠΈ скорСС всСго ΠΎΠ½ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ GIF
ΠΎΡ‚ Ρ„ΠΈΡ€ΠΌΡ‹ CompuServe.


БпСцификация Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° PNG


Π˜ΡΡ…ΠΎΠ΄Π½ΠΈΠΊΠΈ



PNG (произносится «ΠŸΠΈΠ½Π³») — растровый Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для хранСния ΠΈ
ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ растровых ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ: Ρ‡Π΅Ρ€Π½ΠΎ-Π±Π΅Π»Ρ‹Ρ… ΠΈ Π°Π»ΡŒΡ„Π° Π΄Π°Π½Π½Ρ‹Ρ… — Π΄ΠΎ 16 Π±ΠΈΡ‚, Π° Ρ†Π²Π΅Ρ‚Π½Ρ‹Ρ…
— Π΄ΠΎ 48 Π±ΠΈΡ‚ (truecolor). Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ прогрСссивный ΠΌΠ΅Ρ‚ΠΎΠ΄ сТатия Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΡŒ,
позволяСт ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ»Π΅ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρƒ, Ρ‚Π΅ΠΊΡΡ‚ΠΎΠ²ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ обСспСчиваСт
ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ.


Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅:
ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ Ρ„Π°ΠΉΠ»Π°
Π”Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ описаниС
Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация


Π€ΠΎΡ€ΠΌΠ°Ρ‚ PNG создан, ΠΊΠ°ΠΊ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ GIF ΠΎΡ‚ CompuServe, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ„ΠΈΡ€ΠΌΠ°
CompuServe, владСя ΠΏΡ€Π°Π²Π°ΠΌΠΈ Π½Π° этот Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π»ΠΎ свободноС использованиС
ΠΌΠ΅Ρ‚ΠΎΠ΄Π° сТатия LZW (сТатиС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π² GIF — Ρ„Π°ΠΉΠ»Π΅) Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°Ρ….
(Π‘ΠΌ. ΡΡ‚Π°Ρ‚ΡŒΠΈ Π½Π° Ρ‚Π΅ΠΌΡƒ ΡŽΡ€ΠΈΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈΡ…
аспСктов ΠΌΠ΅Ρ‚ΠΎΠ΄Π° сТатия LZW Π² Π“Π»Π°Π²Π΅ 9,
Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ Π”Π°Π½Π½Ρ‹Ρ…
.) Π’ ΡˆΡƒΡ‚ΠΊΡƒ Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ PNG рСкурсивно Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚
— «PNG’s Not GIF» («ΠŸΠΠ“ — НС Π“Π˜Π€»).


PNG создавался ΠΊΠ°ΠΊ простой ΠΈ Π»Π΅Π³ΠΊΠΎ распространяСмый Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, содСрТащий Π² сСбС
всС прСимущСства Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° GIF, Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ бСсплатный ΠΈ Π±Π΅Π· всяких Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½Ρ‹Ρ…
ΠΏΡ€Π°Π² ΠΈ разногласий.


PNG ΠΈ GIF89a ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ свойствами:

  • Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…
  • «Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΡŒ»
  • ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ индСксированныС изобраТСния с ΠΏΠ°Π»ΠΈΡ‚Ρ€ΠΎΠΉ Π΄ΠΎ 256 Ρ†Π²Π΅Ρ‚ΠΎΠ²
  • ΠŸΡ€ΠΎΠ³Ρ€Π΅ΡΡΠΈΠ²Π½ΠΎΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ чСрСсстрочных Π΄Π°Π½Π½Ρ‹Ρ…
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° «ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π°»
  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ доступа.
  • НС зависят ΠΎΡ‚ «ΠΆΠ΅Π»Π΅Π·Π°» ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹


НиТС пСрСчислСны прСимущСства PNG Π½Π°Π΄ GIF Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ…:

  • ΠœΠ΅Ρ‚ΠΎΠ΄ сТатия Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ ΠΎΠ±Ρ€Π΅ΠΌΠ΅Π½Ρ‘Π½ ΡŽΡ€ΠΈΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ
  • Π‘ΠΎΠ»Π΅Π΅ быстроС прогрСссивноС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ чСрСсстрочных схСм
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ возмоТности хранСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…


А ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ возмоТности PNG Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ GIF Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚:

  • Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΡ†Π²Π΅Ρ‚Π½Ρ‹Ρ… 48-Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.
  • Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ 16-Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… Ρ‡Ρ‘Ρ€Π½ΠΎ-Π±Π΅Π»Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ
  • ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΠ»ΡŒΡ„Π°-ΠΊΠ°Π½Π°Π»
  • Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€Π°ΡΡ‚Π½ΠΎΡΡ‚ΡŒ
  • CRC — ΠΌΠ΅Ρ‚ΠΎΠ΄ обнаруТСния ошибок Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…
  • Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ инструмСнтарий для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ чтСния ΠΈ записи PNG
  • Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ тСстовых ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ этих ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ


Но, всё ΠΆΠ΅, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ особСнности GIF Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ Π² PNG вСрсии 1. 0:

  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ хранСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅.
  • Анимация


Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ², создатСли ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… (2-3 программиста) Π½Π΅
заботятся ΠΎ дальнСйшСм Π΅Π³ΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ, PNG Π±Ρ‹Π» создан особым ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚ΠΎΠΌ, Π² состав
ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ вошли заинтСрСсованныС Π² этом спСциалисты ΠΈ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊΠΈ GIF (Π² список
Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² спСцификации PNG вСрсии 1.0 вошли 23 Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ) Π²ΠΎ Π³Π»Π°Π²Π΅ с Вомасом Π‘ΡƒΡ‚Π΅Π»Π»ΠΎΠΌ.


PNG считаСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ², Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ позволяСт Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚
возмоТностями, Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Ρ Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ Π½Π΅ трСбуя измСнСния ΡƒΠΆΠ΅
ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ PNG, Π° спСцификация
Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΈ понятной.


PNG Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… состоит ΠΈΠ· 8-Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠΉ ΠΎΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ подписи,
Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ 3 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ нСзависимых Π±Π»ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ…
ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ структурС. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ своё собствСнноС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅
Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°. Они Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ
ΠΏΠΎΡ‚ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ….


НСкоторыС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ структуру ΠΈΠ· Π±Π»ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….
НаиболСС извСстныС срСди Π½ΠΈΡ…: GIF, IFF ΠΈ RIFF. Π”Π°Π½Π½Ρ‹Π΅ Π² этих Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ…
Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ. Π­Ρ‚ΠΎ избавляСт ΠΎΡ‚ надобности ΠΏΡ€Ρ‹Π³Π°Ρ‚ΡŒ ΠΏΠΎ Ρ„Π°ΠΉΠ»Ρƒ,
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ Π°Π΄Ρ€Π΅ΡΠ°Ρ†ΠΈΡŽ. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ позволяСт Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ с сСтСвыми ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌΠΈ ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ
Π΄Π°Π½Π½Ρ‹Ρ…. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ эти Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ, ΠΊΠ°ΠΊ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹
Ρ„Π°ΠΉΠ»ΠΎΠ², Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…, сохранённый Π² Ρ„Π°ΠΉΠ»Π΅.


Π’ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ PNG ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ 4 Ρ‚ΠΈΠΏΠ° стандартных Π±Π»ΠΎΠΊΠΎΠ², ΠΈΠ½Π°Ρ‡Π΅ ΠΈΠΌΠ΅Π½ΡƒΠ΅ΠΌΡ‹Ρ…
критичСскиС Π±Π»ΠΎΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ любой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ
чтСния ΠΈ записи PNG. Π”Π°Π»Π΅Π΅ слСдуСт ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ этих Π±Π»ΠΎΠΊΠΎΠ²:

Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ (IHDR)


Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ содСрТит ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π΄Π°Π½Π½Ρ‹Ρ…
изобраТСния ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π±Π»ΠΎΠΊΠΎΠΌ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… PNG (Π½Π΅
допускаСтся Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°).

Π‘Π»ΠΎΠΊ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ (PLTE)


ΠŸΠ°Π»ΠΈΡ‚Ρ€Π° нСсёт Π² сСбС Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ†Π²Π΅Ρ‚ΠΎΠ², связанный с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ
изобраТСния. Π­Ρ‚ΠΎΡ‚ Π±Π»ΠΎΠΊ присутствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π΄Π°Π½Π½Ρ‹Π΅ изобраТСния
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρƒ ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅Π΄ этими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

Π”Π°Π½Π½Ρ‹Π΅ изобраТСния (IDAT)


Π‘Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния содСрТит Π² сСбС само ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΈ допускаСтся
нСсколько Ρ‚Π°ΠΊΠΈΡ… Π±Π»ΠΎΠΊΠΎΠ² Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ всС ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΠΏΠ»ΠΎΡ‚Π½ΡƒΡŽ
ΠΏΡ€ΠΈΠΌΡ‹ΠΊΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ ΠΊ Π΄Ρ€ΡƒΠ³Ρƒ.

Π—Π°ΠΌΡ‹ΠΊΠ°ΡŽΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ изобраТСния (IEND)


Π—Π°ΠΌΡ‹ΠΊΠ°ΡŽΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ изобраТСния Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°
Π΄Π°Π½Π½Ρ‹Ρ… PNG.


Π‘Ρ€Π΅Π΄ΠΈ этих Π±Π»ΠΎΠΊΠΎΠ², IHDR, IDAT ΠΈ IEND Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² любом ΠΏΠΎΡ‚ΠΎΠΊΠ΅
Π΄Π°Π½Π½Ρ‹Ρ… PNG.


Рассмотрим 2 Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… Π²ΠΈΠ΄Π° PNG Ρ„Π°ΠΉΠ»ΠΎΠ²: ΠΎΠ΄ΠΈΠ½ с Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π»ΠΈΡ‚Ρ€ΠΎΠΉ, ΠΎΠ΄ΠΈΠ½
Π±Π΅Π·.






Подпись


Π‘Π»ΠΎΠΊ IHDR


Π‘Π»ΠΎΠΊ IDAT


Π‘Π»ΠΎΠΊ IEND







Подпись


Π‘Π»ΠΎΠΊ IHDR


Π‘Π»ΠΎΠΊ PLTE


Π‘Π»ΠΎΠΊ IDAT


Π‘Π»ΠΎΠΊ IEND


Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΡƒ 2 Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ PNG лишь Π² Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π±Π»ΠΎΠΊΠ° с
ΠΏΠ°Π»ΠΈΡ‚Ρ€ΠΎΠΉ.


ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ, ΠΈΠΌΠ΅Π½ΡƒΠ΅ΠΌΡ‹Π΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ
ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ чтСния ΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Ρ„Π°ΠΉΠ»
ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ записи PNG Ρ„Π°ΠΉΠ»ΠΎΠ². Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, отсутствиС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ
Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π° Π½Π΅ΠΏΡ€Π²Π°Π»ΡŒΠ½ΠΎΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ
изобраТСния PNG. Оно ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ слишком Π·Π°Ρ‚Π΅ΠΌΠ½Ρ‘Π½Π½Ρ‹ΠΌ, слишком свСтлым ΠΈΠ»ΠΈ
Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π½Π΅ Π·Π°Π΄ΡƒΠΌΠ°Π½Π½ΠΎΠΌ создатСлСм
этого изобраТСния. РСкомСндуСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈ использованиС Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π°
стандартных ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² (Π² частности, Π±Π»ΠΎΠΊΠ° ΠšΠΎΠ½Ρ‚Ρ€Π°ΡΡ‚Π½ΠΎΡΡ‚ΠΈ
Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ) ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌΠΈ с PNG.


ВмСстС критичСскиС ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ Π² спСцификации
PNG, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρƒ стандартныС Π±Π»ΠΎΠΊΠΈ. Π›ΡŽΠ΄ΠΈ, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΠ΅
Ρ€Π°Π·Π½Ρ‹Π΅ спСцификации PNG, Π²Π΅Π΄ΡƒΡ‚ список Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ², ΠΈΠΌΠ΅Π½ΡƒΠ΅ΠΌΡ‹Ρ… ΠΈΠ½Π°Ρ‡Π΅
ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ огласкС. Π­Ρ‚ΠΈ Π±Π»ΠΎΠΊΠΈ ΠΈΠΌΠ΅ΡŽΡ‚
ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Ρ€Π΅ΠΆΠ΅ стандартных Π±Π»ΠΎΠΊΠΎΠ².
Бписок этих ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² врСмя ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ.
НСкоторыС прилоТСния ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ частныС, Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ для ΠΎΠ±Ρ‰Π΅Π³ΠΎ
доступа Π±Π»ΠΎΠΊΠΈ
для Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ
прилоТСниями.


НиТС Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅ описаны всС стандартныС ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ Π²
ΠΈΠ·Π΄Π°Π½ΠΈΠΈ 1.0 спСцификации PNG ΠΈ связанной с Π½Π΅ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Π‘Π»ΠΎΠΊΠΈ
распрСдСлСны Π² ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ (Π½ΠΎ Π½Π΅ СдинствСнно Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΌ) порядкС, Π²
ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… PNG.





















Π’Π°Π±Π»ΠΈΡ†Π° PNG-1: Π‘Π»ΠΎΠΊΠΈ PNG


Π’ΠΈΠΏ Π±Π»ΠΎΠΊΠ°


ΠœΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½Ρ‹ΠΉ


ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ


ПолоТСниС Π² Ρ„Π°ΠΉΠ»Π΅


IHDR


НСт


НСт


ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π»ΠΎΠΊ


cHRM


НСт


Π”Π°


ΠŸΠ΅Ρ€Π΅Π΄ PLTE ΠΈ IDAT


gAMA


НСт


Π”Π°


ΠŸΠ΅Ρ€Π΅Π΄ PLTE ΠΈ IDAT


sBIT


НСт


Π”Π°


ΠŸΠ΅Ρ€Π΅Π΄ PLTE ΠΈ IDAT


PLTE


НСт


Π”Π°


ΠŸΠ΅Ρ€Π΅Π΄ IDAT


bKGD


НСт


Π”Π°


ПослС PLTE ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ IDAT


hIST


НСт


Π”Π°


ПослС PLTE ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ IDAT


tRNS


НСт


Π”Π°


ПослС PLTE ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ IDAT


oFFs


НСт


Π”Π°


ΠŸΠ΅Ρ€Π΅Π΄ IDAT


pHYs


НСт


Π”Π°


ΠŸΠ΅Ρ€Π΅Π΄ IDAT


sCAL


НСт


Π”Π°


ΠŸΠ΅Ρ€Π΅Π΄ IDAT


IDAT


Π”Π°


НСт


ВмСстС с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ IDAT


tIME


НСт


Π”Π°


Π’ любом мСстС


tEXt


Π”Π°


Π”Π°


Π’ любом мСстС


zTXt


Π”Π°


Π”Π°


Π’ любом мСстС


fRAc


Π”Π°


Π”Π°


Π’ любом мСстС


gIFg


Π”Π°


Π”Π°


Π’ любом мСстС


gIFt


Π”Π°


Π”Π°


Π’ любом мСстС


gIFx


Π”Π°


Π”Π°


Π’ любом мСстС


IEND


НСт


НСт


ПослСдний блок



Подпись PNG Π΄Π»ΠΈΠ½ΠΎΠΉ Π² 8 Π±Π°ΠΉΡ‚ содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для опрСдСлСния Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ
ΠΏΠΎΡ‚ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…, Π² согласии со спСцификациСй PNG.


typedef struct _PngSignature
{
    BYTE Signature[8];  /* Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (всСгда 89504E470D0A1A0Ah) */
} PNGSIGNATURE;


Подпись содСрТит 8 Π±Π°ΠΉΡ‚ со значСниями: 89h 50h 4Eh 47h 0Dh 0Ah 1Ah 0Ah
(«β€°PNG\r\n\n»). Π­Ρ‚Π° Π½Π° Π²ΠΈΠ΄ бСспорядочная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
ΠΈΠΌΠ΅Π΅Ρ‚ довольно ΠΌΠ½ΠΎΠ³ΠΎ практичСских Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π±Π°ΠΉΡ‚Π° — 89h
— 8-Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» содСрТит Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅
Π΄Π°Π½Π½Ρ‹Π΅. Если Π±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ 8-ΠΉ Π±ΠΈΡ‚ Π±Ρ‹Π» Π±Ρ‹ Π²Ρ‹Ρ€Π²Π°Π½ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° (7-Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠ°Π½Π°Π»
Π΄Π°Π½Π½Ρ‹Ρ…), Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π°ΠΉΡ‚ принял Π±Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 09h, Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Π»ΠΎ Π±Ρ‹ Π½Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ,
ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ испорчСн Ρ„Π°ΠΉΠ».


ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π±Π°ΠΉΡ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

  • ΠŸΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… (50h 4Eh 47h — «PNG»)
  • ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Ρ„Π°ΠΉΠ»Π°, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов
    «Π½ΠΎΠ²ΠΎΠΉ строки» («\r\n» становится «\r», «\n» ΠΈΠ»ΠΈ «\n\r»)
  • ΠžΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ‚ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… PNG Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС MS-DOS
    (Control-Z [«»])
  • ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ CR/LF ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ошибки ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²
    (Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΉ символ Π½ΠΎΠ²ΠΎΠΉ строки)


ПослС подписи ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ 3 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π±Π»ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… PNG. ВсС Π±Π»ΠΎΠΊΠΈ PNG ΠΈΠΌΠ΅ΡŽΡ‚
ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ основной Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ количСство Π΄Π°Π½Π½Ρ‹Ρ….


typedef struct _PngChunk
{
    DWORD DataLength;   /* Π Π°Π·ΠΌΠ΅Ρ€ поля Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±Π°ΠΉΡ‚Π°Ρ… */
    DWORD Type;         /* Код, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏ Π±Π»ΠΎΠΊΠ° */
    BYTE  Data[];       /* БобствСнно Π΄Π°Π½Π½Ρ‹Π΅, хранящиСся Π² Π±Π»ΠΎΠΊΠ΅ */
    DWORD Crc;          /* CRC-32 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ Type ΠΈ Data */
} PNGCHUNK;


DataLength — число Π±Π°ΠΉΡ‚ΠΎΠ² Π² ΠΏΠΎΠ»Π΅ Data. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚
0 Π΄ΠΎ 231-1.


Type — 4-Ρ… Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏ хранящихся Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±Π»ΠΎΠΊΠ΅.
ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π°ΠΉΡ‚ Π² этом ΠΏΠΎΠ»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π·Π°Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ прописного
латинского символа Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ASCII (A-Z, a-z). На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΈΠΏ Π±Π»ΠΎΠΊΠ° IHDR
Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 69484452h Π² ΠΏΠΎΠ»Π΅ Type. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° чтСния PNG
Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄Ρ‹ Type ΠΊΠ°ΠΊ 32-Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ Π±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Π΅ значСния, Π½Π΅
ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ строками. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ чтСния ΠΊΠΎΠ΄ΠΎΠ² Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠ°ΠΊ
символов Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ASCII сущСствуСт лишь для удобства Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ.


ПолС Data — собствСнно Π΄Π°Π½Π½Ρ‹Π΅, хранящиСся Π² Π±Π»ΠΎΠΊΠ΅. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ
Π½ΡƒΠ»Π΅Π²ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ, Ссли Π½Π΅ сущСствуСт связанных с Π½ΠΈΠΌ Π΄Π°Π½Π½Ρ‹Ρ….


Crc — CRC-32 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, просчитываСмоС для ΠΏΠΎΠ»Π΅ΠΉ Type ΠΈ Data. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для опрСдСлСния, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Ρ‘Π½Π½Ρ‹ΠΌΠΈ. Π’ PNG
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ CRC, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ Π² ISO 3309 ΠΈ ITU-T V.42.


Π‘Π»ΠΎΠΊΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΎΡ‚ 12 Π±Π°ΠΉΡ‚ (Π½Π΅ содСрТат Π΄Π°Π½Π½Ρ‹Ρ…) Π΄ΠΎ (231-1)+12
Π±Π°ΠΉΡ‚. Π‘Π»ΠΎΠΊΠΈ всСгда Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎ Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌ Π±Π°ΠΉΡ‚ΠΎΠ², ΠΈ поэтому Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅
трСбуСтся Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ.

ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ



Π­Ρ‚ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π» описываСт стандартныС Π±Π»ΠΎΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ
любой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ чтСния ΠΈ записи PNG.

Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ



Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния Π² PNG Ρ„Π°ΠΉΠ»Π΅.
Π­Ρ‚ΠΎΡ‚ Π±Π»ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π±Π»ΠΎΠΊΠΎΠΌ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… PNG ΠΈ слСдуСт
нСпосрСдствСнно Π·Π° подписью PNG. ΠžΠ±Π»Π°ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°
составляСт 13 Π±Π°ΠΉΡ‚ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚:


typedef struct _IHDRChunk
{
    DWORD Width;        /* Π¨ΠΈΡ€ΠΈΠ½Π° изобраТСния Π² пиксСлях */
    DWORD Height;       /* Высота изобраТСния Π² пиксСлях */
    BYTE BitDepth;      /* ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π±ΠΈΡ‚ΠΎΠ² Π½Π° пиксСль ΠΈ ΠΎΠ±Ρ€Π°Π·Π΅Ρ† */
    BYTE ColorType;     /* Π˜Π½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ Ρ†Π²Π΅Ρ‚Π° */
    BYTE Compression;   /* Π˜Π½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚ΠΈΠΏΠ° сТатия */
    BYTE Filter;        /* Π˜Π½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚ΠΈΠΏΠ° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° */
    BYTE Interlace;     /* Π’ΠΈΠΏ использованной схСмы чСрСсстрочной Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚ΠΊΠΈ */
} IHDRCHUNK;


Поля Width ΠΈ Height — высота ΠΈ ΡˆΠΈΡ€ΠΈΠ½Π° растрового изобраТСния Π² пиксСлях.
ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ значСния ΠΎΡ‚ 1 Π΄ΠΎ 231-1.


BitDepth — количСство Π±ΠΈΡ‚ΠΎΠ² Π½Π° пиксСль для ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с индСксированными
Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ ΠΈ количСство Π±ΠΈΡ‚ΠΎΠ² Π½Π° ΠΎΠ±Ρ€Π°Π·Π΅Ρ† для Ρ‡Ρ‘Ρ€Π½ΠΎ-Π±Π΅Π»Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ
ΠΏΠΎΠ»Π½ΠΎΡ†Π²Π΅Ρ‚Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (24 Π±ΠΈΡ‚Π°). Π£ индСксированных ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ
BitDepth ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ значСния 1, 2, 4 ΠΈ 8. Π£ Ρ‡Ρ‘Ρ€Π½ΠΎ-Π±Π΅Π»Ρ‹Ρ… — 1, 2, 4, 8
ΠΈ 16. Π£ ΠΏΠΎΠ»Π½ΠΎΡ†Π²Π΅Ρ‚Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π±Π΅Π· Π°Π»ΡŒΡ„Π° Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρƒ Ρ‡Ρ‘Ρ€Π½ΠΎ-Π±Π΅Π»Ρ‹Ρ…
ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с Π°Π»ΡŒΡ„Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, BitDepth ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ значСния 8 ΠΈ 16.


ColorType опрСдСляСт способ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния.
ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡ‹Π΅ значСния (Π²ΠΈΠ΄ изобраТСния): 0 (Ρ‡Ρ‘Ρ€Π½ΠΎ-Π±Π΅Π»ΠΎΠ΅), 2
(ΠΏΠΎΠ»Π½ΠΎΡ†Π²Π΅Ρ‚Π½ΠΎΠ΅), 3 (индСксированноС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅), 4 (Ρ‡Ρ‘Ρ€Π½ΠΎ-Π±Π΅Π»ΠΎΠ΅ с
Π°Π»ΡŒΡ„Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ) ΠΈ 6 (полносвСтноС с Π°Π»ΡŒΡ„Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ).


Compression опрСдСляСт Π²ΠΈΠ΄ сТатия Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния. Π’ настоящСС врСмя
СдинствСнноС допустимоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ — 0, ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰Π΅Π΅, Ρ‡Ρ‚ΠΎ использован ΠΌΠ΅Ρ‚ΠΎΠ΄
сТатия Defalte. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ сТатия Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ…
добавлСниях PNG.


Filter опрСдСляСт Π²ΠΈΠ΄ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡ€ΠΈΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹ΠΉ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ изобраТСния ΠΏΠ΅Ρ€Π΅Π΄
сТатиСм. На сСгодняшний дСнь, СдинствСнноС допустимоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ — 0,
ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰Π΅Π΅, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π» ΠΏΡ€ΠΈΠΌΠ΅Π½Ρ‘Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½ΠΈΡ adaptive, описанный Π²
спСцификации PNG. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ…
добавлСниях PNG. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля filter Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Π±Ρ‹Π»ΠΈ Π»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅
изобраТСния ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½Ρ‹; Π½Π° это ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π±Π°ΠΉΡ‚ filter type Π² Π½Π°Ρ‡Π°Π»Π΅
ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚ΠΊΠΈ. Π”Π°Π½Π½Ρ‹Π΅ изобраТСния Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ
ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ сТатиСм.


Interlace опрСдСляСт чСрСсстрочный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для хранСния
Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния, ΠΈΠ»ΠΈ, Ссли Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ, порядок ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ
ΠΏΠΈΠΊΡΠ΅Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡ‹Π΅ значСния — 0 (Π½Π΅Ρ‚ чСрСсстрочности) ΠΈ 1
(Ρ‡Π΅Ρ€Π΅ΡΡΡ‚Ρ€ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Adam7).

ΠŸΠ°Π»ΠΈΡ‚Ρ€Π°



ΠŸΠ°Π»ΠΈΡ‚Ρ€Π° (PLTE) всСгда присутствуСт Π² ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… PNG, содСрТащих
изобраТСния с индСксированными Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ (ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π΅ Color Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ
Π±Π»ΠΎΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 3). ΠŸΠΎΠ»Π½ΠΎΡ†Π²Π΅Ρ‚Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… PNG (значСния поля
Color — 2 ΠΈ 6) Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρƒ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΡƒΡŽ для разбития
Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния Π½Π° ΠΏΠΎΠ΄Π³Ρ€ΡƒΠΏΠΏΡ‹ прилоТСниями, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈ
ΠΏΠΎΠ»Π½ΠΎΡ†Π²Π΅Ρ‚Π½ΡƒΡŽ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρƒ. ΠŸΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… PNG Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹.


ΠŸΠ°Π»ΠΈΡ‚Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΎΡ‚ 3 Π΄ΠΎ 768 Π±Π°ΠΉΡ‚ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚:


typedef struct _PLTEChunkEntry
{
    BYTE Red;           /* ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ (0 = Ρ‡Ρ‘Ρ€Π½Ρ‹ΠΉ, 255 = максимум ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠ°) */
    BYTE Green;         /* Π—Π΅Π»Ρ‘Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ (0 = Ρ‡Ρ‘Ρ€Π½Ρ‹ΠΉ, 255 = максимум ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠ°) */
    BYTE Blue;          /* Π‘ΠΈΠ½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ (0 = Ρ‡Ρ‘Ρ€Π½Ρ‹ΠΉ, 255 = максимум ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠ°) */
} PLTECHUNKENTRY;
PLTECHUNKENTRY PLTEChunk[];


PLTEChunk — массив, содСрТащий ΠΎΡ‚ 1 Π΄ΠΎ 256 элСмСнтов, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…
содСрТит 3 поля: Red, Green ΠΈ Blue, хранящиС соотвСтствСнно значСния
красного, Π·Π΅Π»Ρ‘Π½ΠΎΠ³ΠΎ ΠΈ синСго Ρ†Π²Π΅Ρ‚ΠΎΠ² для Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹.

Π‘Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния



Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния (IDAT) содСрТит собствСнно Π΄Π°Π½Π½Ρ‹Π΅ изобраТСния. Π’
соотвСтствии со спСцификациСй PNG эти Π΄Π°Π½Π½Ρ‹Π΅ всСгда хранятся Π² сТатом
Π²ΠΈΠ΄Π΅. Π”Π°Π½Π½Ρ‹Π΅ изобраТСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π±ΠΈΡ‚Ρ‹ Π½Π° нСсколько IDAT Π±Π»ΠΎΠΊΠΎΠ²,
Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ записи PNG Π±Ρ‹Π»ΠΎ Π»Π΅Π³Ρ‡Π΅ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сТатыС Π΄Π°Π½Π½Ρ‹Π΅
изобраТСния. Π£ сТатого ΠΏΠΎΡ‚ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π΅Π»ΠΎΠ², ΠΏΠΎΡ‚ΠΎΠΌΡƒ IDAT Π±Π»ΠΎΠΊ
ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ ΠΎΡ‚ 0 Π΄ΠΎ 231-1 Π±Π°ΠΉΡ‚.

Π—Π°ΠΌΡ‹ΠΊΠ°ΡŽΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ изобраТСния



ПослСдний Π±Π»ΠΎΠΊ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… PNG — Π·Π°ΠΌΡ‹ΠΊΠ°ΡŽΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ изобраТСния (IEND).
Π­Ρ‚ΠΎΡ‚ Π±Π»ΠΎΠΊ Π½Π΅ содСрТит Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ….

Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ



Π’ PNG v1.0 ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ 10 Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚
ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… PNG. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ· этих Π±Π»ΠΎΠΊΠΎΠ²
обСспСчиваСт ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Image
Gamma — ΠΊΠΎΠ½Ρ‚Ρ€Π°ΡΡ‚Π½ΠΎΡΡ‚ΡŒ изобраТСния). ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° поля Data ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΡ…
Ρ‚Π°ΠΊΠΈΡ… Π±Π»ΠΎΠΊΠΎΠ² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π½ΠΈΠΆΠ΅. Полная информация ΠΎΠ± этих Π±Π»ΠΎΠΊΠ°Ρ… содСрТится
Π² спСцификации Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° PNG.

Π‘Π»ΠΎΠΊ Π€ΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ Π¦Π²Π΅Ρ‚Π°



Π‘Π»ΠΎΠΊ Π€ΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ Π¦Π²Π΅Ρ‚Π° опрСдСляСт Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° изобраТСния. Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:
Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ чтСния PNG ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот Π±Π»ΠΎΠΊ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ
Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° ΠΏΠΎ ΠΈΡ… ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ.


Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ… этого Π±Π»ΠΎΠΊΠ° зависит ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния,
опрСдСляСмого Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ поля ColorType Π±Π»ΠΎΠΊ IHDR. Для ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с
индСксированными Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ (ColorType = 3), Π΄Π°Π½Π½Ρ‹Π΅ Π΄Π»ΠΈΠ½ΠΎΠΉ 1 Π±Π°ΠΉΡ‚ содСрТат
индСкс Ρ†Π²Π΅Ρ‚Π° ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π² качСствС Ρ„ΠΎΠ½Π°.


typedef struct _bKGDChunkEntry
{
    BYTE Index;    /* ИндСкс Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π° Π² ΠΏΠ°Π»ΠΈΡ‚Ρ€Π΅ */
} BKGDCHUNKENTRY;


Π’ Ρ‡Ρ‘Ρ€Π½ΠΎ-Π±Π΅Π»Ρ‹Ρ… изобраТСниях с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ Π±Π΅Π· Π΄Π°Π½Π½Ρ‹Ρ… Π°Π»ΡŒΡ„Π° ΠΊΠ°Π½Π°Π»Π° (ColorType =
0 ΠΈΠ»ΠΈ 4), Π±Π»ΠΎΠΊ Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π° Π΄Π»ΠΈΠ½ΠΎΠΉ 2 Π±Π°ΠΉΡ‚Π° содСрТит ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠ° сСрого,
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π² качСствС Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°.


typedef struct _bKGDChunkEntry
{
    WORD Value;   /* Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ уровня сСрого Ρƒ Ρ„ΠΎΠ½Π° */
} BKGDCHUNKENTRY;


Π£ ΠΏΠΎΠ»Π½ΠΎΡ†Π²Π΅Ρ‚Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ Π±Π΅Π· Π΄Π°Π½Π½Ρ‹Ρ… Π°Π»ΡŒΡ„Π° ΠΊΠ°Π½Π°Π»Π°
(ColorType = 2 ΠΈ 6), Π±Π»ΠΎΠΊ Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π° Ρ‚Ρ€ΠΈ 2-Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ…
Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ RGB.


typedef struct _bKGDChunkEntry
{
    WORD Red;   /* Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ красного Π² Ρ†Π²Π΅Ρ‚Π΅ Ρ„ΠΎΠ½Π° */
    WORD Green; /* Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ Π·Π΅Π»Ρ‘Π½ΠΎΠ³ΠΎ Π² Ρ†Π²Π΅Ρ‚Π΅ Ρ„ΠΎΠ½Π° */
    WORD Blue;  /* Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ синСго Π² Ρ†Π²Π΅Ρ‚Π΅ Ρ„ΠΎΠ½Π° */
} BKGDCHUNKENTRY;

Π‘Π»ΠΎΠΊ ΠžΡΠ½ΠΎΠ²Π½Ρ‹Ρ… Π¦Π²Π΅Ρ‚ΠΎΠ² ΠΈ Π‘Π΅Π»ΠΎΠΉ Π’ΠΎΡ‡ΠΊΠΈ



Π‘Π»ΠΎΠΊ ΠžΡΠ½ΠΎΠ²Π½Ρ‹Ρ… Π¦Π²Π΅Ρ‚ΠΎΠ² ΠΈ Π‘Π΅Π»ΠΎΠΉ Π’ΠΎΡ‡ΠΊΠΈ содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ RGB значСниях,
основанных Π½Π° 1931 CIE Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π½ΠΎΠΌ пространствС XYZ. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹
Ρ†Π²Π΅Ρ‚Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ осям x ΠΈ y, ΠΈ ΠΎΠ½ΠΈ прСдставлСны Π² Π²ΠΈΠ΄Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ,
ΠΏΠΎΠΌΠ½ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π½Π° 100 000.


typedef struct _cHRMChunkEntry
{
    DWORD WhitePointX;   /* Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π‘Π΅Π»ΠΎΠΉ Π’ΠΎΡ‡ΠΊΠΈ ΠΏΠΎ x */
    DWORD WhitePointY;   /* Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π‘Π΅Π»ΠΎΠΉ Π’ΠΎΡ‡ΠΊΠΈ ΠΏΠΎ y  */
    DWORD RedX;          /* Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠšΡ€Π°ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎ x */
    DWORD RedY;          /* Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠšΡ€Π°ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎ y */
    DWORD GreenX;        /* Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π—Π΅Π»Ρ‘Π½ΠΎΠ³ΠΎ ΠΏΠΎ x */
    DWORD GreenY;        /* Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π—Π΅Π»Ρ‘Π½ΠΎΠ³ΠΎ ΠΏΠΎ y */
    DWORD BlueX;         /* Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π‘ΠΈΠ½Π΅Π³ΠΎ ΠΏΠΎ x */
    DWORD BlueY;         /* Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π‘ΠΈΠ½Π΅Π³ΠΎ ΠΏΠΎ y */
} CHRMCHUNKENTRY;

Π‘Π»ΠΎΠΊ ΠšΠΎΠ½Ρ‚Ρ€Π°ΡΡ‚Π½ΠΎΡΡ‚ΠΈ Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ



Π‘Π»ΠΎΠΊ контрастности изобраТСния содСрТит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ контрастности
Π² соотвСтствии с ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ — ΠΊΠΎΠ½Ρ‚Ρ€Π°ΡΡ‚Π½ΠΎΡΡ‚ΡŒ,
помноТСнная Π½Π° 100 000. Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся Π°Π²Ρ‚ΠΎΡ€Π°ΠΌΠΈ
PNG ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊ контрастности.


typedef struct _gAMAChunkEntry
{
    DWORD Gamma;    /* Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ контрастности */
} GAMACHUNKENTRY;

Π‘Π»ΠΎΠΊ Гистограммы Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ



Π‘Π»ΠΎΠΊ Гистограммы изобраТСния содСрТит Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ частотС
использования ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Π² ΠΏΠ°Π»ΠΈΡ‚Ρ€Π΅. Π­Ρ‚ΠΎΡ‚ Π±Π»ΠΎΠΊ содСрТит массив
2-Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Ρ… элСмСнтов, ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹.


typedef struct _hISTChunkEntry
{
    WORD Histogram[];    /* Π”Π°Π½Π½Ρ‹Π΅ гистограммы */
} HISTCHUNKENTRY;

Π‘Π»ΠΎΠΊ ЀактичСского Π Π°Π·ΠΌΠ΅Ρ€Π° Π² ΠŸΠΈΠΊΡΠ΅Π»ΡΡ…



Π‘Π»ΠΎΠΊ ЀактичСского Π Π°Π·ΠΌΠ΅Ρ€Π° Π² ΠŸΠΈΠΊΡΠ΅Π»ΡΡ… опрСдСляСт Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅,
ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для отобраТСния изобраТСния.


typedef struct _pHYsChunkEntry
{
   DWORD PixelsPerUnitX;    /* ПиксСлСй Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ измСрСния, ось X */
   DWORD PixelsPerUnitY;    /* ПиксСлСй Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ измСрСния, ось X */
   BYTE  UnitSpecifier;     /* 0 = нСизвСстная, 1 = мСтричСская Π΅Π΄ΠΈΠ½ΠΈΡ†Π° измСрСния */
} PHYSCHUNKENTRY;

Π‘Π»ΠΎΠΊ Π—Π½Π°Ρ‡ΠΈΠΌΡ‹Ρ… Π‘ΠΈΡ‚ΠΎΠ²



Π‘Π»ΠΎΠΊ Π—Π½Π°Ρ‡ΠΈΠΌΡ‹Ρ… Π‘ΠΈΡ‚ΠΎΠ² опрСдСляСт Π±ΠΈΡ‚ΠΎΠ²ΡƒΡŽ Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния. Если
ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ записи PNG Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ изобраТСния с
Π½Π΅ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ Π³Π»ΡƒΠ±ΠΈΠ½ΠΎΠΉ, Π΄Π°Π½Π½Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ
блиТайшСй ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹. НапримСр, стобы ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ RGB
Π΄Π°Π½Π½Ρ‹Π΅ с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ 5 Π±ΠΈΡ‚ Π½Π° пиксСль Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ PNG (RGB555), Π΄Π°Π½Π½Ρ‹Π΅
изобраТСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄ΠΎ 8-Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ (RGB888). Π‘Π»ΠΎΠΊ
Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Ρ… Π±ΠΈΡ‚ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π±ΠΈΡ‚ΠΎΠ²ΡƒΡŽ Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….


Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ… этого Π±Π»ΠΎΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ 4 Ρ€Π°Π·Π½Ρ‹Ρ… Π²ΠΈΠ΄ΠΎΠ² Π² зависимости ΠΎΡ‚
Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… Π² ΠΏΠΎΠ»Π΅ ColorType Π±Π»ΠΎΠΊΠ° IHDR:


/* Π§Ρ‘Ρ€Π½ΠΎ-Π±Π΅Π»ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (ColorType = 0) */
typedef struct _sBITChunkEntry
{
    BYTE GrayscaleBits;    /* Π—Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ Π±ΠΈΡ‚Ρ‹ Ρ‡Ρ‘Ρ€Π½ΠΎ-Π±Π΅Π»ΠΎΠ³ΠΎ изобраТСния (ColorType 0) */
} SBITCHUNKENTRY;


/* ΠŸΠΎΠ»Π½ΠΎΡ†Π²Π΅Ρ‚Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с индСксированными Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ (ColorType = 2 ΠΈΠ»ΠΈ 3) */
typedef struct _sBITChunkEntry
{
    BYTE RedBits;     /* Π—Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ Π±ΠΈΡ‚Ρ‹ ΠšΡ€Π°ΡΠ½ΠΎΠ³ΠΎ */
    BYTE GreenBits;   /* Π—Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ Π±ΠΈΡ‚Ρ‹ Π—Π΅Π»Ρ‘Π½ΠΎΠ³ΠΎ */
    BYTE BlueBits;    /* Π—Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ Π±ΠΈΡ‚Ρ‹ Π‘ΠΈΠ½Π΅Π³ΠΎ */
} SBITCHUNKENTRY;


/* Π§Ρ‘Ρ€Π½ΠΎ-Π±Π΅Π»ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π°Π»ΡŒΡ„Π° ΠΊΠ°Π½Π°Π»Π° (ColorType = 4) */
typedef struct _sBITChunkEntry
{
    BYTE GrayscaleBits; /* Π—Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ Π±ΠΈΡ‚Ρ‹ Ρ‡Ρ‘Ρ€Π½ΠΎ-Π±Π΅Π»Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… */
    BYTE AlphaBits;     /* Π—Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ Π±ΠΈΡ‚Ρ‹ Π°Π»ΡŒΡ„Π° ΠΊΠ°Π½Π°Π»Π° */
} SBITCHUNKENTRY;


/* ΠŸΠΎΠ»Π½ΠΎΡ†Π²Π΅Ρ‚Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π°Π»ΡŒΡ„Π° ΠΊΠ°Π½Π°Π»Π° (ColorType = 6) */
typedef struct _sBITChunkEntry
{
    BYTE RedBits;     /* Π—Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ Π±ΠΈΡ‚Ρ‹ ΠšΡ€Π°ΡΠ½ΠΎΠ³ΠΎ */
    BYTE GreenBits;   /* Π—Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ Π±ΠΈΡ‚Ρ‹ Π—Π΅Π»Ρ‘Π½ΠΎΠ³ΠΎ */
    BYTE BlueBits;    /* Π—Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ Π±ΠΈΡ‚Ρ‹ Π‘ΠΈΠ½Π΅Π³ΠΎ  */
    BYTE AlphaBits;   /* Π—Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ Π±ΠΈΡ‚Ρ‹ ΠΠ»ΡŒΡ„Π° Канала */
} SBITCHUNKENTRY;

Π‘Π»ΠΎΠΊ ВСкстовых Π”Π°Π½Π½Ρ‹Ρ…



Π‘Π»ΠΎΠΊ ВСкстовых Π”Π°Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для хранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ,
ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠΉ для чтСния Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ, (ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ Π°Π²Ρ‚ΠΎΡ€
изобраТСния, ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ± авторских ΠΏΡ€Π°Π²Π°Ρ… ΠΈ Ρ‚. ΠΏ.) хранящСйся Π²Π½ΡƒΡ‚Ρ€ΠΈ PNG
Ρ„Π°ΠΉΠ»Π°. Π”Π°Π½Π½Ρ‹Π΅ этого Π±Π»ΠΎΠΊΠ° ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚:


typedef struct _tEXtChunkEntry
{
    char Keyword[];      /* Π’ΠΈΠΏ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, содСрТащСйся Π² ΠΏΠΎΠ»Π΅ Text */
    BYTE NullSeparator;  /* НулСвой Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ символ (NULL) */
    char Text[];         /* ВСкстовыС Π΄Π°Π½Π½Ρ‹Π΅ */
} TEXTCHUNKENTRY;


ПолС Keyword ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΎΡ‚ 1 Π΄ΠΎ 79 Π±Π°ΠΉΡ‚ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅
ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌΡ‹Π΅ символы ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ страницы Latin-1 Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, ΠΊΡ€ΠΎΠΌΠ΅
Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ символа (NULL).


ПолС NullSeparator — 1 Π±Π°ΠΉΡ‚ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 0. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅ раздСляСт поля
Keyword ΠΈ Text.


ПолС Text — собствСнно ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, хранящиСся Π² Π±Π»ΠΎΠΊΠ΅. Π”Π»ΠΈΠ½Π° этого
символа опрСдСляСтся ΠΈΠ· значСния поля DataLength Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Π±Π»ΠΎΠΊΠ°.


Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля Keyword содСрТит ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова, связанныС с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ поля Text.
НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½ список ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов, содСрТащихся Π² ΠΏΠΎΠ»Π΅ Keyword Π² PNG 1.0:











НазваниС
Автор
ОписаниС
АвторскиС ΠΏΡ€Π°Π²Π°
ВрСмя создания
ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС
ΠžΡ‚ΠΊΠ°Π· ΠΎΡ‚ ΠΏΡ€Π°Π²Π°
ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅
Π˜ΡΡ…ΠΎΠ΄Π½ΠΈΠΊ
ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ



Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±Ρ‰Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ
Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ прилоТСниями.

Π‘Π»ΠΎΠΊ Π’Ρ€Π΅ΠΌΠ΅Π½ΠΈ ПослСднСго ИзмСнСния Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ



Π‘Π»ΠΎΠΊ Π’Ρ€Π΅ΠΌΠ΅Π½ΠΈ ПослСднСго ИзмСнСния Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ содСрТит врСмя послСднСго
измСнСния изобраТСния (Π° Π½Π΅ врСмя создания) ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚:


typedef struct tIMEChunkEntry
{
    WORD Year;      /* Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π³ΠΎΠ΄Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 1996) */
    BYTE Month;     /* Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ мСсяца (1-12) */
    BYTE Day;       /* Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ дня (1-31) */
    BYTE Hour;      /* Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ часа (0-23) */
    BYTE Minute;    /* Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ (0-59) */
    BYTE Second;    /* Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сСкунды (0-60) */
} TIMECHUNKENTRY;

Π‘Π»ΠΎΠΊ ΠŸΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΠΈ



Π‘Π»ΠΎΠΊ ΠŸΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΠΈ содСрТит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠ³ΠΎ (ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ) PNG
изобраТСния, Π½Π΅ содСрТащСго ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π°Π»ΡŒΡ„Π° Π΄Π°Π½Π½Ρ‹Ρ…. ЗначСния
пиксСлСй для ΠΏΠΎΠ»Π½ΠΎΡ†Π²Π΅Ρ‚Π½Ρ‹Ρ… ΠΈ Ρ‡Ρ‘Ρ€Π½ΠΎ-Π±Π΅Π»Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… с
ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ, ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌΠΈ (Π°Π»ΡŒΡ„Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ — 0), ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅
ΠΆΠ΅ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌΠΈ.


Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ с индСксированными Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ содСрТат массив Π°Π»ΡŒΡ„Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ,
максимум ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π½Π° элСмСнт ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹. Π­Ρ‚ΠΈ значСния прозрачности
ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΠΊΠ°ΠΊ Π°Π»ΡŒΡ„Π° значСния. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹, Π½Π΅
ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ прозрачности, присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 255
(Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½Π΅ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹Π΅).


Допустимы 3 Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π΄Π°Π½Π½Ρ‹Ρ… Π² этом Π±Π»ΠΎΠΊΠ΅, Π² зависимости ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π΄Π°Π½Π½Ρ‹Ρ…
изобраТСния, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅ ColorType Π±Π»ΠΎΠΊΠ° IHDR:


/* Π§Ρ‘Ρ€Π½ΠΎ-Π±Π΅Π»ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (ColorType = 0) */
typedef struct _tRNSChunkEntry
{
    WORD TransparencyValue;    /* Π¦Π²Π΅Ρ‚ прозрачности */
} TRNSCHUNKENTRY;


/* ΠŸΠΎΠ»Π½ΠΎΡ†Π²Π΅Ρ‚Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (ColorType = 2) */
typedef struct _tRNSChunkEntry
{
    WORD RedTransValue;        /* ΠšΡ€Π°ΡΠ½Π°Ρ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ Ρ†Π²Π΅Ρ‚Π° прозрачности */
    WORD GreenTransValue;      /* ЗСлёная ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ Ρ†Π²Π΅Ρ‚Π° прозрачности */
    WORD BlueTransValue;       /* Биняя ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ Ρ†Π²Π΅Ρ‚Π° прозрачности */
} TRNSCHUNKENTRY;


/* Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с индСксированными Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ (ColorType = 3) */
typedef struct _tRNSChunkEntry
{
    BYTE TransparencyValues[];  /* Π¦Π²Π΅Ρ‚Ρ‹ прозрачности */
} TRNSCHUNKENTRY;

Π‘Π»ΠΎΠΊ Π‘ΠΆΠ°Ρ‚Ρ‹Ρ… ВСкстовых Π”Π°Π½Π½Ρ‹Ρ…



Π‘Π»ΠΎΠΊ Π‘ΠΆΠ°Ρ‚Ρ‹Ρ… ВСкстовых Π”Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для хранСния Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ
тСкстовых Π΄Π°Π½Π½Ρ‹Ρ… Π² сТатом Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. Π€ΠΎΡ€ΠΌΠ°Ρ‚ этого Π±Π»ΠΎΠΊΠ° Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρƒ
Π±Π»ΠΎΠΊΠ° тСкстовых Π΄Π°Π½Π½Ρ‹Ρ…, с Ρ‚Π΅ΠΌ лишь ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π΅ Text содСрТит
Π΄Π°Π½Π½Ρ‹Π΅, сТатыС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Deflate, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ PNG для сТатия
Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния.

Π”Π°Π½Π½Ρ‹Π΅ Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ



Π”Π°Π½Π½Ρ‹Π΅ Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ PNG прСдставлСны Π² растровом Π²ΠΈΠ΄Π΅ со строками Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚ΠΊΠΈ,
Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ ΠΈ свСрху Π²Π½ΠΈΠ·. ПиксСли всСгда ΡƒΠΏΠ»ΠΎΡ‚Π½Π΅Π½Ρ‹ Π²
этих строках ΠΈ Π½Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π±ΠΈΡ‚Π°ΠΌΠΈ для выравнивания Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π±Π°ΠΉΡ‚ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ
пиксСлями. ПиксСли Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΌΠ΅Π½Π΅Π΅ 8 Π±ΠΈΡ‚ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Ρ‹ Π² Π±Π°ΠΉΡ‚ ΠΊΡ€Π°ΠΉΠ½Π΅Π³ΠΎ
Π»Π΅Π²ΠΎΠ³ΠΎ пиксСля, занимая Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ Π±ΠΈΡ‚Ρ‹ Π² Π±Π°ΠΉΡ‚Π΅.


Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚ΠΊΠΈ всСгда Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ Π½Π° стыках Π±Π°ΠΉΡ‚ΠΎΠ² ΠΈ всСгда Π΄ΠΎΠ»ΠΆΠ½Ρ‹
Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π΄ΠΎ блиТайшСго стыка Π±Π°ΠΉΡ‚ΠΎΠ² Π² ΠΊΠΎΠ½Ρ†Π΅. ΠŸΠ΅Ρ€Π΅Π΄ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкой Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚ΠΊΠΈ
Ρ‚Π°ΠΊΠΆΠ΅ находится Π±Π°ΠΉΡ‚ Ρ‚ΠΈΠΏΠ° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ сТатии ΠΈ
ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠΈ изобраТСния. Π­Ρ‚ΠΎΡ‚ Π±Π°ΠΉΡ‚ опрСдСляСт Ρ‚ΠΈΠΏ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½ΠΈΡ,
использованного ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π΄Π°Π½Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚ΠΊΠΈ. Π­Ρ‚ΠΎΡ‚ Π±Π°ΠΉΡ‚
присутствуСт всСгда, Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΎ.


ЗначСния Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния Π³Π»ΡƒΠ±ΠΈΠ½ΠΎΠΉ Ρ†Π²Π΅Ρ‚Π° Π΄ΠΎ 8 Π±ΠΈΡ‚ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ
ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Ρ‹ Π² Ρ†Π²Π΅Ρ‚ΠΎΠ²ΡƒΡŽ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρƒ Π»ΠΈΠ±ΠΎ сохранСны Π² растровых Π΄Π°Π½Π½Ρ‹Ρ… Π² Π²ΠΈΠ΄Π΅
Ρ‡Ρ‘Ρ€Π½ΠΎ-Π±Π΅Π»Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ΠŸΠΎΠ»Π½ΠΎΡ†Π²Π΅Ρ‚Π½Ρ‹Π΅ пиксСли всСгда хранятся Π² Π²ΠΈΠ΄Π΅ 3-Ρ…
ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… (красный, Π·Π΅Π»Ρ‘Π½Ρ‹ΠΉ, синий соотвСтствСнно). Π’Π°ΠΊΠΆΠ΅ 4-я
ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ (ΠΠ»ΡŒΡ„Π° ΠΊΠ°Π½Π°Π») ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΠ»Π½ΠΎΡ†Π²Π΅Ρ‚Π½Ρ‹ΠΉ
пиксСль.


Π§Ρ‘Ρ€Π½ΠΎ-Π±Π΅Π»Ρ‹Π΅ ΠΈ Ρ†Π²Π΅Ρ‚Π½Ρ‹Π΅ индСксированныС растровыС изобраТСния содСрТат ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ
ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ Π½Π° пиксСль, образуя односоставныС пиксСли. КаТдая
ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ всСгда ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Π­Ρ‚ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€
называСтся Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ Π³Π»ΡƒΠ±ΠΈΠ½ΠΎΠΉ, Ρ€Π°Π²Π½ΠΎΠΉ количСству Π±ΠΈΡ‚ΠΎΠ² Π² ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ.
ΠžΠ΄ΠΈΠ½ΠΎΡ‡Π½Π°Ρ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π³Π»ΡƒΠ±ΠΈΠ½ΠΎΠΉ ΠΎΡ‚ 1 Π΄ΠΎ 16 Π±ΠΈΡ‚ΠΎΠ². Для
ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с индСксированными Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ, битовая Π³Π»ΡƒΠ±ΠΈΠ½Π° опрСдСляСт
максимальноС количСство Ρ†Π²Π΅Ρ‚ΠΎΠ² Π² ΠΏΠ°Π»ΠΈΡ‚Ρ€Π΅. Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ PNG Π½Π΅ опрСдСляСтся,
Π½ΠΎ ΠΈ Π½Π΅ устраняСтся Π΄Π²ΡƒΡ…ΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ΅ растровоС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.


ΠœΠ½ΠΎΠ³ΠΎΡΠΎΡΡ‚Π°Π²Π½Ρ‹Π΅ пиксСли содСрТат 2 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Π½Π° пиксСль. Π­Ρ‚ΠΈ
ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ 8 ΠΈ 16 Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅, Π½ΠΎ всС ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ изобраТСния
Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. ΠœΠ½ΠΎΠ³ΠΎΡΠΎΡΡ‚Π°Π²Π½Ρ‹Π΅ пиксСли ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ
ΠΎΡ‚ 16 Π΄ΠΎ 64 Π±ΠΈΡ‚ΠΎΠ².


НапримСр, Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ Ρ‡Ρ‘Ρ€Π½ΠΎ-Π±Π΅Π»Ρ‹ΠΉ пиксСль содСрТит ΠΎΠ΄Π½Ρƒ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ.
Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ 24-Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ пиксСль Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ RGB — Ρ‚Ρ€ΠΈ 8-Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ…, Π°
Π½Π΅Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ 64-Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ пиксСль Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ RGBA Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ 4 16-Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ…
пиксСля. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ односоставныС ΠΈ многосоставныС пиксСли,
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΡ‚ 8- ΠΈ 16-Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅, Π΄ΠΎΠ»ΠΆΠ½Ρ‹
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ блиТайшСй допустимой Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹. НапримСр, для
хранСния 10-Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ 16-Π±ΠΈΡ‚ΠΎΠ²ΡƒΡŽ.
ΠΠ΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π±ΠΈΡ‚Ρ‹ Π»ΠΈΠ±ΠΎ Π·Π°Π±ΠΈΠ²Π°ΡŽΡ‚ΡΡ нолями (Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½ΠΎ для
ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Π³Π»ΡƒΠ±ΠΈΠ½ΠΎΠΉ ΠΌΠ΅Π½Π΅Π΅ 8 Π±ΠΈΡ‚, Π½ΠΎ для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π³Π»ΡƒΠ±ΠΈΠ½ Π·Π°Π±ΠΈΠ²Π°Π½ΠΈΠ΅ нолями
ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ сТатиС), Π»ΠΈΠ±ΠΎ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΌ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π°
Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ допустимых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½ΠΎ). Π‘ΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΠΈ PNG
Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ быстрый ΠΌΠ΅Ρ‚ΠΎΠ΄ увСличСния ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° ΠΏΡƒΡ‚Ρ‘ΠΌ дублирования самых
ΠΊΡ€Π°ΠΉΠ½ΠΈΡ… слСва Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΡ… Π±ΠΈΡ‚ΠΎΠ².

ΠΠ»ΡŒΡ„Π° ΠΊΠ°Π½Π°Π»



Π§Ρ‘Ρ€Π½ΠΎ-Π±Π΅Π»Ρ‹Π΅ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡ†Π²Π΅Ρ‚Π½Ρ‹Π΅ изобраТСния Π³Π»ΡƒΠ±ΠΈΠ½ΠΎΠΉ ΠΎΡ‚ 8 Π΄ΠΎ 16 Π±ΠΈΡ‚ΠΎΠ² Ρ‚Π°ΠΊΠΆΠ΅
ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½Π΅ сопоставлСнныС Π΄Π°Π½Π½Ρ‹Π΅ Π°Π»ΡŒΡ„Π° ΠΊΠ°Π½Π°Π»Π°, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π°Π»ΡŒΡ„Π°
маской
. Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅ Π°Π»ΡŒΡ„Π° маски, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‡Ρ‘Ρ€Π½ΠΎ-Π±Π΅Π»Ρ‹ΠΉ ΠΈΠ»ΠΈ
ΠΏΠΎΠ»Π½ΠΎΡ†Π²Π΅Ρ‚Π½Ρ‹ΠΉ пиксСль содСрТит Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Π»ΡŒΡ„Π° ΠΊΠ°Π½Π°Π»Π° для
Π΄Π°Π½Π½ΠΎΠ³ΠΎ пиксСля. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ с индСксированными Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ
Π°Π»ΡŒΡ„Π° ΠΊΠ°Π½Π°Π» Π² Π±Π»ΠΎΠΊΠ΅ прозрачности.


ΠΠ»ΡŒΡ„Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ опрСдСляСт ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ прозрачности пиксСля. МинимальноС
Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ (всСгда 0) ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ,
Π° максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π»ΠΈΠ±ΠΎ отсутствиС ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠ΅ Π°Π»ΡŒΡ„Π° маски ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚
Π½Π° ΠΏΠΎΠ»Π½ΡƒΡŽ Π½Π΅ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ.

Π§Π΅Ρ€Π΅ΡΡΡ‚Ρ€ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ



Π”Π°Π½Π½Ρ‹Π΅ изобраТСния PNG ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ хранятся Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π»ΠΈΠ½ΠΈΠΉ
Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚ΠΊΠΈ, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅ΠΉΡΡ ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки Π²Π²Π΅Ρ€Ρ…Ρƒ изобраТСния ΠΈ
Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉΡΡ послСднСй строкой Π²Π½ΠΈΠ·Ρƒ изобраТСния. Π”Π°Π½Π½Ρ‹Π΅ изобраТСния
PNG Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ чСрСсстрочной структурС для
прогрСссивного отобраТСния этих Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.


ΠŸΡ€ΠΎΠ³Ρ€Π΅ΡΡΠΈΠ²Π½ΠΎΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ PNG Ρ„Π°ΠΉΠ»Π° Ρ‡Π΅Ρ€Π΅Π·
ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠ°Π½Π°Π» связи (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°Π½Π°Π», ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΠΉ ваш Web-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ с
Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ΠΎΠΌ). Π­Ρ„Ρ„Π΅ΠΊΡ‚ постСпСнного прояснСния ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ
Ρ€Π°Π·Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎ Π΅Π³ΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ отобраТСния. Π­Ρ‚ΠΎ свойство
ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ-мСню Π½Π° Web-страницС ΠΈΠ»ΠΈ для изобраТСния,
нСстоящСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° Π΅Π³ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ.


ВсС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ чтСния PNG Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ чСрСсстрочныС Π΄Π°Π½Π½Ρ‹Π΅
изобраТСния, хотя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ просмотра совсСм Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ
ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ прогрСссивноС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.


Випичная чСрСсстрочная схСма, Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ GIF, просто
Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅Ρ‚ порядок хранСния строк Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚ΠΊΠΈ. НапримСр, строки Ρ„Π°ΠΉΠ»Π°
Π±ΡƒΠ΄ΡƒΡ‚ хранится Π½Π΅ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ порядкС (0, 1, 2, 3, 4, 5, 6,…), Π°
Π² чСрСсстрочном (0, 8, 4, 9, 2, 10, 5,…). Π€ΠΎΡ€ΠΌΠ°Ρ‚ GIF ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΡƒΡŽ
ΠΆΠ΅ Ρ‡Π΅Ρ€Π΅ΡΡΡ‚Ρ€ΠΎΡ‡Π½ΡƒΡŽ схСму, ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ (ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ) Π² 4 этапа:
1/8, 1/8, 1/4 ΠΈ 1/2.


Π’ PNG нСсколько ΠΈΠ½ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄: созданиС чСрСсстрочного изобраТСния Π² 7
этапов ΠΏΠΎ схСмС Adam7 (Π² Ρ‡Π΅ΡΡ‚ΡŒ создатСля Адама М. ΠšΠΎΡΡ‚Π΅Π»Π»ΠΎ). ΠŸΠ΅Ρ€Π²Ρ‹Π΅ 6
этапов Π² этой схСмС ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ всСх Ρ‡Ρ‘Ρ‚Π½Ρ‹Ρ… строк (0,
2, 4, 6,…), Π° послСдний 7-ΠΉ для заполнСния ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ Π½Π΅Ρ‡Ρ‘Ρ‚Π½Ρ‹Ρ… сток (1, 3,
5, 7…).


ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ пиксСли для всСй строки, исходныС 6 этапов
содСрТат лишь Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ пиксСли Ρ‡Π΅Ρ€Π΅Π· строку. Π’ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… 2
этапах содСрТится 1/64-я всСх пиксСлСй изобраТСния, Π² 3-Π΅ΠΌ — 1/32-я, Π²
4-ΠΎΠΌ — 1/16-я, Π² 5-ΠΌ — 1/8, Π² 6-ΠΌ — 1/4, Π° Π² Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ 7-ΠΌ этапС — 1/2
Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния.


Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° экранС постСпСнно создаётся сначала ΠΈΠ· ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ² 8×8, Π·Π°Ρ‚Π΅ΠΌ
ΠΈΠ· ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² 4×8, Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ· ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ² 4×4, Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ· ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² 2×4,
Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ· ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ² 2×2 ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ· ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² 1×2. Π’ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ
этапС Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ всС пиксСли Π½Π΅Ρ‡Ρ‘Ρ‚Π½Ρ‹Ρ… строк.


Π§Π΅Ρ€Π΅ΡΡΡ‚Ρ€ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Adam7 позволяСт Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ быстрСС прогрСссивно ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ
пиксСли Π½Π° экранС, Ρ‡Π΅ΠΌ Ссли Π±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΈΡΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ сроки Ρ€Π°Π·Π²Π΅Ρ€Ρ‚ΠΊΠΈ.
ПиксСли Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ располоТСны Π² Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ для чСловСчСского
Π³Π»Π°Π·Π° схСмС, позволяя Ρ€Π°Π·Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ 20% — 30%
Π΄Π°Π½Π½Ρ‹Ρ… этого изобраТСния, Π² сравнСнии с 50% ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ…
для Π΄Π°Π½Π½Ρ‹Ρ… GIF.


Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ†Π΅Π½ΠΎΠΉ Π·Π° Ρ‡Π΅Ρ€Π΅ΡΡΡ‚Ρ€ΠΎΡ‡Π½ΡƒΡŽ схСму PNG Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄Π°Π½Π½Ρ‹Ρ…,
ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ Π²Π»ΠΈΡΡŽΡ‰ΠΈΠΉ ΠΈ Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈΡ… ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ. ЧСрСсстрочная схСма
GIF просто Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅Ρ‚ порядок хранСния строк Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚ΠΊΠΈ ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚
Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ влияния Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ строки Ρ€Π°Π·Π²Π΅Ρ€Ρ‚ΠΊΠΈ. Π’ схСмС PNG, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ
этап, ΠΊΡ€ΠΎΠΌΠ΅ послСднСго, содСрТит нСсмСТныС пиксСли, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 1-ΠΉ этап
содСрТит ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ 8-ΠΉ пиксСль с ΠΊΠ°ΠΆΠ΄ΠΎΠΉ 8-ΠΉ строки.


Π’ срСднСм эти пиксСли ΠΌΠ΅Π½Π΅Π΅ связаны, Ρ‡Π΅ΠΌ сосСдниС пиксСли, поэтому сТатиС
ΠΌΠ΅Π½Π΅Π΅ эффСктивно Π½Π° чСрСсстрочных Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Π΅ΠΌ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ…, Π°,
ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π° 10% большС. Π’ цСлях, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…
Ρ‡Π΅Ρ€Π΅ΡΡΡ‚Ρ€ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π³ΠΎΠ΄Π½Π°, излишний Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠΊΡƒΠΏΠ°Π΅Ρ‚ сСбя Π² Π±ΠΎΠ»Π΅Π΅ быстром
ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ изобраТСния.


Π§Π΅Ρ€Π΅ΡΡΡ‚Ρ€ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Adam7 осущСствляСтся ΠΏΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π»ΡŒΠ½ΠΎΠΉ схСмС, ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠΉ
Π½ΠΈΠΆΠ΅. НСсТатыС Π΄Π°Π½Π½Ρ‹Π΅ PNG ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ Π² чСрСсстрочныС Π΄Π°Π½Π½Ρ‹Π΅ спСрва ΠΏΡƒΡ‚Ρ‘ΠΌ
налоТСния шаблона 8×8 Π½Π° всё ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Π—Π°Ρ‚Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ 7 Ρ€Π°Π· ΡΠΊΠ°Π½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ,
ΠΈ значСния пиксСлСй ΠΏΠΎΠ΄ шаблоном ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ значСния пиксСлСй,
сохраняСмых ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΠΎ сСти Π²ΠΎ врСмя ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ этапа.










1


6


4


6


2


6


4


6


7


7


7


7


7


7


7


7


5


6


5


6


5


6


5


6


7


7


7


7


7


7


7


7


3


6


4


6


3


6


4


6


7


7


7


7


7


7


7


7


5


6


5


6


5


6


5


6


7


7


7


7


7


7


7


7

Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…



Π”Π°Π½Π½Ρ‹Π΅ изобраТСния PNG всСгда хранятся Π² сТатом Π²ΠΈΠ΄Π΅. Π”Π°Π½Π½Ρ‹Π΅ изобраТСния
ΡΠΆΠΈΠΌΠ°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ, сходному ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Deflate, с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ прСдугадывания
Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ пиксСлСй с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ сТатиСм разности. ΠœΠ΅Ρ‚ΠΎΠ΄ сТатия Deflate
Π±Ρ‹Π» создан Π€ΠΈΠ»ΠΎΠΌ ΠšΠ°Ρ‚Π·ΠΎΠΌ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π°ΠΊΠΆΠ΅ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π°Ρ€Ρ…ΠΈΠ²Π°Ρ†ΠΈΠΈ
Ρ„Π°ΠΉΠ»ΠΎΠ² pkzip. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ сТатия Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΡŒ являСтся быстрым,
Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ, бСсплатно доступным ΠΈ совмСстимым со ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ
ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ.


ΠœΠ΅Ρ‚ΠΎΠ΄ Deflate — Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сТатия LZ77, Π·Π°ΠΏΠ°Ρ‚Π΅Π½Ρ‚ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ
(4,464,650) Π›Π΅ΠΌΠΏΠ΅Π»ΠΎΠΌ, Π—ΠΈΠ²ΠΎΠΌ, ΠšΠΎΡ…Π΅Π½ΠΎΠΌ ΠΈ Π˜ΡΡ‚ΠΌΠ°Π½ΠΎΠΌ Π² 1981 Π³ΠΎΠ΄Ρƒ. ΠœΠ΅Ρ‚ΠΎΠ΄
Deflate ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°ΡŽΡ‰Π΅Π΅ΡΡ ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΎΠΊΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ
случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ сортированныС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ для распознавания структуры
Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ сТатия ΠΈΡ… ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°. Π’ PNG ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ
Deflate Π±Π΅Π· случайных Ρ‚Π°Π±Π»ΠΈΡ†, ΠΈ поэтому Π½Π° Π½Π΅Π³ΠΎ Π½Π΅ Π²Π»ΠΈΡΡŽΡ‚ условия ΠΏΡ€Π°Π²ΠΎΠ²Ρ‹Ρ…
притязаний ΠΈ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½Ρ‹Ρ… соглашСний.


Π”Π°Π½Π½Ρ‹Π΅ изобраТСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ сТатиСм. Π€ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅
Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ значСния Π±Π°ΠΉΡ‚ΠΎΠ² Π² строках Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚ΠΊΠΈ, позволяя Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ сТатия
Deflate Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ эффСктивным ΠΈ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ сТатыС Π΄Π°Π½Π½Ρ‹Π΅.


ВсС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ Π±Π°ΠΉΡ‚Π°ΠΌ Π² строках Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚ΠΊΠΈ, Π° Π½Π΅
ΠΊ пиксСлям. ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π»ΡŽΠ±Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π°Π»ΡŒΡ„Π° ΠΊΠ°Π½Π°Π»Π° Π² Π΄Π°Π½Π½Ρ‹Ρ… строк
Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚ΠΊΠΈ ΠΎΠ½ΠΈ Ρ‚ΠΎΠΆΠ΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΡŽΡ‚ΡΡ. А Ρ‚.ΠΊ. ΠΎΠ΄ΠΈΠ½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅
ΠΎΡ‡Π΅Π½ΡŒ эффСктивСн, Ссли Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎ всСму ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ, каТдая строка
Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚ΠΊΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, ΠΈ ΠΊ Π½Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Ρ‘Π½ любой ΠΈΠ»ΠΈ
Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½ΠΈΡ.


НСкоторыС Π²ΠΈΠ΄Ρ‹ ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ для использования с
Π΄Π°Π½Π½Ρ‹ΠΌΠΈ изобраТСния PNG. Π€ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ примСняСтся Π΄ΠΎ сТатия, ΠΈ
ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ примСняСтся послС извлСчСния Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния,
восстанавливая ΠΈΡ… Π΄ΠΎ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния. ВсС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ PNG ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ
ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΡ‹ ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΡŽΡ‚ Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΡŒ.


Π€ΠΈΠ»ΡŒΡ‚Ρ€ «ΠŸΠ΅Ρ€Π΅Π΄» сохраняСт Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π±Π°ΠΉΡ‚Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ пиксСля ΠΈ
значСния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π±Π°ΠΉΡ‚Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ пиксСля (ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ
Ρ„ΠΈΠ»ΡŒΡ‚Ρ€). Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ позволяСт Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ разности ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ составной Π²
Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… многосоставных пиксСлях. Π’Π°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Ρ… TIFF.


Π€ΠΈΠ»ΡŒΡ‚Ρ€ «Π‘Π²Π΅Ρ€Ρ…Ρƒ» сохраняСт Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Π°ΠΉΡ‚ΠΎΠΌ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ пиксСля ΠΈ
ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π±Π°ΠΉΡ‚ΠΎΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ пиксСля Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ строкС
Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚ΠΊΠΈ. «Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ» Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ сохраняСт Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ пиксСлСм ΠΈ
срСдним арифмСтичСски Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ пиксСлСй Π½Π°Π΄ ΠΈ слСва ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ пиксСля.


Π€ΠΈΠ»ΡŒΡ‚Ρ€ «Π’Ρ€Π°Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π»ΠΈΠ½Π΅ΠΉΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для подсчёта значСния.
Π‘Π»ΠΈΠΆΠ°ΠΉΡˆΠΈΠΉ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΉ Π±Π°ΠΉΡ‚ слСва, Π²Π΅Ρ€Ρ…Ρƒ ΠΈΠ»ΠΈ свСрху слСва ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²
качСствС ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ значСния.



Полная спСцификация PNG, докумСнтация ΠΏΠΎ ΠΎΠ³Π»Π°ΡˆΠ°Π΅ΠΌΡ‹ΠΌ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π±Π»ΠΎΠΊΠ°ΠΌ,
ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ срСдства для внСдрСния PNG, ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ PNG ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ
доступны.


ВСкущая спСцификация PNG находится Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Web страницС:


http://sunsite.unc.edu/boutell/png.html



ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… FTP сайтах:


ftp://swrinde.nde.swri.edu/pub/png/documents/
ftp://ftp.uu.net:/graphics/png/documents/


ΠΠ°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΉ источник ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ PNG ΠΈ рСсурсы находятся Π½Π° сайтС PNG
Π³Ρ€ΡƒΠΏΠΏΡ‹ Π“Ρ€Π΅Π³Π° Π ΠΎΡƒΠ»ΠΎΡ„Π°:


http://quest.jpl.nasa.gov/PNG/


Вопросы ΠΎ PNG ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ слуТбС рассылки новостСй
comp.graphics.misc, ΠΏΠΎ
адрСсу:


[email protected]



Π»ΠΈΠ±ΠΎ Π³Π»Π°Π²Π½ΠΎΠΌΡƒ Π°Π²Ρ‚ΠΎΡ€Ρƒ спСцификации PNG Вомасу Π‘ΠΎΡƒΡ‚Π΅Π»Π»Ρƒ:


E-mail: [email protected]


Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ PNG ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° PNG рассылку. ΠŸΠΎΡˆΠ»ΠΈΡ‚Π΅ e-mail ΠΏΠΎ адрСсу
[email protected].


Π”Ρ€ΡƒΠ³ΠΈΠ΅ PNG рассылки:


Π’Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹Π΅ рассылки содСрТат ОсновноС обсуТдСниС PNG, объявлСния,
связанныС с PNG, ΠΈ ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠΈ PNG. Для Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ
ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎΡˆΠ»ΠΈΡ‚Π΅ e-mail ΠΏΠΎ адрСсу [email protected]
с СдинствСнным словом «help» Π² тСкстС письма.


ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ FTP Π°Ρ€Ρ…ΠΈΠ² PNG:


ftp://ftp.uu.net/graphics/png/


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ внСдрСния PNG Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ чтСния ΠΈ записи PNG Π½Π° языкС C доступСн
ΠΏΠΎ адрСсу:


ftp://ftp.uu.net/graphics/png/src/


ВСстовыС изобраТСния PNG для самоконтроля находятся Π½Π°:


ftp://ftp.uu.net/graphics/png/images/


ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΎ PNG, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π·Π΅Ρ€ΠΊΠ°Π»Π° всСх сайтов, находятся Π½Π°:

ftp://ftp.uu.net/graphics/png/
ΠΈ Π½Π°:


ftp://swrinde.nde.swri.edu/pub/png/


ВсС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° этом сайтС находятся Π² состоянии Π±Π΅Ρ‚Π° тСстирования ΠΈ
Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ с ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ. Π’ случаС вопросов, ошибки Π½Π΅ Π²
спСцификации, Π° Π² ΠΊΠΎΠ΄Π΅.


Π“Ρ€ΡƒΠΏΠΏΠ° 42 — Π°Π²Ρ‚ΠΎΡ€Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ PNG Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° LIBPNG. Π˜Ρ… Web
страница содСрТит Ρ€Π°Π·Π΄Π΅Π», посвящённый Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚
Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ LIBPNG, ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° PNG , Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ сТатия, ΠΈ Π½Π°Π±ΠΎΡ€
тСстовых ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. БСсплатная вСрсия Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ находится Π² Π½Π°Π»ΠΈΡ‡ΠΈΠΈ.
ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π“Ρ€ΡƒΠΏΠΏΡ‹ 42:


Group 42, Inc.

Π’Π΅Π»Π΅Ρ„ΠΎΠ½: 800-520-0042

Π’Π΅Π»Π΅Ρ„ΠΎΠ½: 513-831-3400

E-mail: [email protected]

WWW: http://www.group42.com/


Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ PNG находится Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π›ΠΈΠΈ Π”Π°Π½ΠΈΠ΅Π»Π° ΠšΡ€ΠΎΠΊΠ΅Ρ€Π°:


«PNG: ΠŸΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΡ‹ΠΉ сСтСвой графичСский Ρ„ΠΎΡ€ΠΌΠ°Ρ‚» Π² Π–ΡƒΡ€Π½Π°Π»Π΅ Π”ΠΎΠΊΡ‚ΠΎΡ€Π°
Π”ΠΎΠ±Π±Π°
Ρ‚ΠΎΠΌ 20, Π½ΠΎΠΌΠ΅Ρ€ 232 ΠΎΡ‚ Июля 1995, страницы 36-44.


Π’ тСкстовом Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Π²Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚Π°Ρ ΡΡ‚Π°Ρ‚ΡŒΡ находится Π½Π°:


ftp://ftp.mv.com/pub/ddj/1995/1195.07/ptot.zip


Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΎ PNG ΠΎΡ‚ CompuServe:


http://www.compuserve.com/new/news_rel/png2.html















Copyright Β© 1996, 1994 O’Reilly & Associates, Inc. All Rights Reserved.

Png Ρ„Π°ΠΉΠ»Ρ‹ для Ρ„ΠΎΡ‚ΠΎΡˆΠΎΠΏΠ°. Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ PNG с ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π² Adobe Photoshop (вСрсии CC ΠΈ Π²Ρ‹ΡˆΠ΅)

Π€Π°ΠΉΠ» Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° PNG открываСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, скачайтС ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Π§Π΅ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ PNG

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ PNG это Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для хранСния ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ качСства. Π­Ρ‚ΠΎ самый популярный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ для использования Π² Π‘Π΅Ρ‚ΠΈ.

Π§Ρ‚ΠΎ находится Π² Ρ„Π°ΠΉΠ»Π°Ρ… PNG

Π€Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»Π° PNG являСтся Ρ„Π°ΠΉΠ»ΠΎΠΌ Portable Network Graphics
. Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ сТатиС Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΡŒ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ рассматриваСтся ΠΊΠ°ΠΊ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° GIF. Но Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ , Π² Ρ„Π°ΠΉΠ»Π°Ρ… PNG Π½Π΅ поддСрТиваСтся анимация.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ PNG ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠ°ΠΊ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ Π² ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠ°Ρ… сСрого, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡ†Π²Π΅Ρ‚Π½Ρ‹Π΅, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹Π΅ слои. Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ PNG ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² GIF. JPG ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ большС прСимущСств ΠΏΠ΅Ρ€Π΅Π΄ PNG, Π½ΠΎ послС Ρ‚Π°ΠΊΠΎΠ³ΠΎ сТатия ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ Π΄Π΅Ρ„Π΅ΠΊΡ‚Ρ‹ Π² изобраТСниях с тСкстом ΠΈΠ»ΠΈ Π²ΠΎΠΊΡ€ΡƒΠ³ высококонтрастных областСй.

Как ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» PNG

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ PNG Ρ„Π°ΠΉΠ»Ρ‹, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈΠ»ΠΈ графичСский Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€. И ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ОБ Windows, ΠΈ Mac OS ΠΈΠΌΠ΅ΡŽΡ‚ встроСнныС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ для просмотра Ρ‚Π°ΠΊΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Png — ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ Windows ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для открытия Ρ„Π°ΠΉΠ»ΠΎΠ² PNG, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это систСмная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Windows. Но сущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… способов ΠΈΡ… просмотра.

ВсС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Chrome, Firefox, Internet Explorer
ΠΈ Ρ‚. Π΄.) Π±ΡƒΠ΄ΡƒΡ‚ автоматичСски ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ PNG, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚Π΅ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅, Π° это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ PNG Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ для открытия ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ PNG Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ клавиш Ctrl + O. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ drag-and-drop, поэтому ΠΌΠΎΠΆΠ½ΠΎ просто ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ PNG Ρ„Π°ΠΉΠ» Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΅Π³ΠΎ.

ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΡ PNG

Π€Π°ΠΉΠ»Ρ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² png ΠΈ ΠΈΠ· Π½Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ сСрвисов. НапримСр, это позволяСт Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Png — Π€ΠΎΡ‚ΠΎΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€ .

Π€Π°ΠΉΠ» изобраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ хранится Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Portable Network Graphic (PNG). Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Π±ΠΈΡ‚ΠΎΠ²ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Ρ†Π²Π΅Ρ‚ΠΎΠ² ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠΌΠΏΡ€Π΅ΡΡΠΈΡŽ Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΡŒ, Π±Π»ΠΈΠ·ΠΊΡƒΡŽ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ , Π½ΠΎ Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для хранСния Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π²Π΅Π±-ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ PNG (читаСтся ΠΊΠ°ΠΊ ΠΏΠ½Π³) создавался Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° ограничСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° , прСимущСствСнно Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ†Π²Π΅Ρ‚ΠΎΠ² ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π±Π΅Π· ΠΏΠ°Ρ‚Π΅Π½Ρ‚Π½ΠΎΠΉ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ. Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ этому Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ»Ρ‹

Π”ΠΎΠ±Ρ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ суток!
Π’Π°ΠΌ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ устроСны Ρ„Π°ΠΉΠ»Ρ‹ PNG? НСт? А я всС Ρ€Π°Π²Π½ΠΎ расскаТу.
Π€ΠΎΡ€ΠΌΠ°Ρ‚ PNG(Portable Network Graphics) Π±Ρ‹Π» ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½ Π² 1995 Π³ΠΎΠ΄Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‚Π°Ρ‚ΡŒ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ GIF , Π° ΡƒΠΆΠ΅ Π² 1996, с Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ вСрсии 1.0, ΠΎΠ½ Π±Ρ‹Π» Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½ W3C , Π² качСствС ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π½ΠΎΠ³ΠΎ сСтСвого Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°. На сСгодняшний дСнь PNG являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· основных Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Π²Π΅Π±-Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ.

Под ΠΊΠ°Ρ‚ΠΎΠΌ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ ΠΎΠ±Ρ‰Π΅Π΅ описаниС строСния PNG-Ρ„Π°ΠΉΠ»Π°, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ количСство ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ-схСм, ΠΏΡ€Π΅ΠΏΠ°Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² hex-Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅, ΠΈ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ссылку Π½Π° ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ.

ΠžΠ±Ρ‰Π΅Π΅ строСниС

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° PNG Π² самом ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅ прСдставлСна Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ рисункС.

Π’ΠΎ Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ» состоит ΠΈΠ· подписи ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ количСства Π±Π»ΠΎΠΊΠΎΠ²(Ρ‡Π°Π½ΠΊΠΎΠ², chunks), ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… нСсСт Π² сСбС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ (спасибо КО!). Но ΠΏΠΎΡ‡Π΅ΠΌΡƒ подпись нСльзя ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Ρ‡Π°Π½ΠΊΠΎΠ²? Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся ΠΏΠΎΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

Подпись Ρ„Π°ΠΉΠ»Π°

Подпись PNG-Ρ„Π°ΠΉΠ»Π° всСгда ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π°, состоит ΠΈΠ· 8 Π±Π°ΠΉΡ‚, ΠΈ прСдставляСт собой (Π² hex-записи)

Π§Ρ‚ΠΎ ΠΆΠ΅ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚?

  • 89 — non-ASCII символ. ΠŸΡ€Π΅ΠΏΡΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡŽ PNG, ΠΊΠ°ΠΊ тСкстового Ρ„Π°ΠΉΠ»Π°, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.
  • 50 4E 47 — PNG Π² ASCII записи.
  • 0D 0A — CRLF (Carriage-return, Line-feed), DOS-style ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки.
  • 1A — останавливаСт Π²Ρ‹Π²ΠΎΠ΄ Ρ„Π°ΠΉΠ»Π° Π² DOS Ρ€Π΅ΠΆΠΈΠΌΠ΅ (end-of-file), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π°ΠΌ Π½Π΅ Π²Ρ‹Π²Π°Π»ΠΈΠ²Π°Π»ΠΎΡΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² тСкстовом Π²ΠΈΠ΄Π΅.
  • 0A — LF, Unix-style ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки.
Chunks

Π§Π°Π½ΠΊΠΈ — это Π±Π»ΠΎΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… состоит Ρ„Π°ΠΉΠ». ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‡Π°Π½ΠΊ состоит ΠΈΠ· 4 сСкций.

Π Π°Π·Π±Π΅Ρ€Π΅ΠΌ эти сСкции ΠΏΠΎ порядку.

Π”Π»ΠΈΠ½Π°

Ну, с Π΄Π»ΠΈΠ½ΠΎΠΉ Π²Ρ€ΠΎΠ΄Π΅ всС ясно. ΠŸΡ€ΠΎΡΡ‚ΠΎ числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ….

Вип (имя)

Π‘ Ρ‚ΠΈΠΏΠΎΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ поинтСрСснСй. Π’ΠΈΠΏ прСдставляСт собой 4 Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊ рСгистру ASCII-символа. РСгистры символов (пятый Π±ΠΈΡ‚ Π² числовой записи символа) Π² ΠΈΠΌΠ΅Π½ΠΈ Ρ‡Π°Π½ΠΊΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ нСспроста — это Ρ„Π»Π°Π³ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‚ Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€Ρƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

  • РСгистр ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа опрСдСляСт являСтся Π»ΠΈ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ‡Π°Π½ΠΊ критичСским(Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ рСгистр) ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ(Π½ΠΈΠΆΠ½ΠΈΠΉ рСгистр). ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Ρ‡Π°Π½ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€ΠΎΠΌ. Если Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€ встрСчаСт критичСский Ρ‡Π°Π½ΠΊ, Ρ‚ΠΈΠΏ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ, ΠΎΠ½ обязан Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ с ошибкой.
  • РСгистр Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ символа Π·Π°Π΄Π°Π΅Ρ‚ Β«ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒΒ»(Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ рСгистр) ΠΈΠ»ΠΈ Β«ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΡΡ‚ΡŒΒ»(Π½ΠΈΠΆΠ½ΠΈΠΉ рСгистр) Ρ‡Π°Π½ΠΊΠ°. Β«ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅Β» Ρ‡Π°Π½ΠΊΠΈ — ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅, Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅, распознаваСмыС Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€ΠΎΠ². Но Ссли Π²Π΄Ρ€ΡƒΠ³ Π²Π°ΠΌ для ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ своих Π½ΡƒΠΆΠ΄ понадобится ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Ρ‚ΠΎ просто Π² ΠΈΠΌΠ΅Π½ΠΈ Ρ‡Π°Π½ΠΊΠ° сдСлайтС Π²Ρ‚ΠΎΡ€ΠΎΠΉ символ малСньким.
  • РСгистр Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ символа оставлСн для Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… ΡΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΉ. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Ρ†ΠΈΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… вСрсий стандарта. Для вСрсий 1.0 ΠΈ 1.1 Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ символ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ большим. Если ΠΎΠ½ (Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ!) оказался малСньким, всС Π½Ρ‹Π½Π΅ΡˆΠ½ΠΈΠ΅ Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ с Ρ‡Π°Π½ΠΊΠΎΠΌ, Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ с Π»ΡŽΠ±Ρ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π½Π΅ распознанным (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ с ошибкой Ссли Ρ‡Π°Π½ΠΊ критичСский, ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС).
  • РСгистр ΠΆΠ΅ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠ³ΠΎ символа ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ копирования Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‡Π°Π½ΠΊΠ° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π΅Π³ΠΎ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ. Если рСгистр Π½ΠΈΠΆΠ½ΠΈΠΉ, Ρ‡Π°Π½ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ скопирован, Π²Π½Π΅ зависимости ΠΎΡ‚ стСпСни ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»Π°, ΠΈΠ½Π°Ρ‡Π΅ (Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ рСгистр) ΠΎΠ½ копируСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² случаС, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π΅ Π±Ρ‹Π»ΠΈ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ критичСскиС Ρ‡Π°Π½ΠΊΠΈ.

Для Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ понимания, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Ρ„Π»Π°Π³ΠΈ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ‡Π°Π½ΠΊΠ°, содСрТащСго тСкст.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ список Ρ‚ΠΈΠΏΠΎΠ² Ρ‡Π°Π½ΠΊΠΎΠ² с ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌΠΈ пояснСниями.
ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Ρ‡Π°Π½ΠΊΠΈ

  • IHDR
    — Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Ρ„Π°ΠΉΠ»Π°, содСрТит ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ. Обязан Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Ρ‡Π°Π½ΠΊΠΎΠΌ.
  • PLTE
    — ΠΏΠ°Π»ΠΈΡ‚Ρ€Π°, список Ρ†Π²Π΅Ρ‚ΠΎΠ².
  • IDAT
    — содСрТит, собствСнно, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Рисунок ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° нСсколько IDAT Ρ‡Π°Π½ΠΊΠΎΠ², для ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ. Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ IDAT Ρ‡Π°Π½ΠΊ.
  • IEND
    — Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΉ Ρ‡Π°Π½ΠΊ, обязан Π±Ρ‹Ρ‚ΡŒ послСдним Π² Ρ„Π°ΠΉΠ»Π΅.

Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‡Π°Π½ΠΊΠΈ

  • bKGD
    — этот Ρ‡Π°Π½ΠΊ Π·Π°Π΄Π°Π΅Ρ‚ основной Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚.
  • cHRM
    ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для задания CIE 1931 Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠ³ΠΎ пространства.
  • gAMA
    — опрСдСляСт Π³Π°ΠΌΠΌΡƒ.
  • hIST
    — Π² этом Ρ‡Π°Π½ΠΊΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ гистограмма ΠΈΠ»ΠΈ ΠΎΠ±Ρ‰Π΅Π΅ содСрТаниС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ.
  • iCCP
    — Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ ICC
  • iTXt
    — содСрТит тСкст Π² UTF-8, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ сТатый, с Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ языковой ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ. iTXt Ρ‡Π°Π½ΠΊ с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом «XML:com.adobe.xmp» ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Extensible Metadata Platform (XMP) .
  • pHYs
    — содСрТит ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ пиксСля ΠΈ/ΠΈΠ»ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ сторон изобраТСния.
  • sBIT
    (significant bits) — опрСдСляСт Β«Ρ†Π²Π΅Ρ‚ΠΎΠ²ΡƒΡŽ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΒ» (color-accuracy) изобраТСния (Ρ‡Π΅Ρ€Π½ΠΎ-Π±Π΅Π»ΠΎΠ΅, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚, Ρ‡Π΅Ρ€Π½ΠΎ-Π±Π΅Π»ΠΎΠ΅ с ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ Ρ‚.Π΄.), для Π±ΠΎΠ»Π΅Π΅ простого дСкодирования.
  • sPLT
    — ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρƒ для использования, Ссли ΠΏΠΎΠ»Π½Ρ‹ΠΉ спСктр Ρ†Π²Π΅Ρ‚ΠΎΠ² нСдоступСн.
  • sRGB
    — ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΎ использовании стандартной sRGB схСмы.
  • sTER
    — ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ стСрСоскопичСских ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.
  • tEXt
    — ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ тСкст Π² ISO/IEC 8859-1 Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, с ΠΎΠ΄Π½ΠΎΠΉ name=value ΠΏΠ°Ρ€ΠΎΠΉ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‡Π°Π½ΠΊΠ°.
  • tIME
    — Ρ…Ρ€Π°Π½ΠΈΡ‚ Π΄Π°Ρ‚Ρƒ послСднСго измСнСния изобраТСния.
  • tRNS
    — содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ прозрачности.
  • zTXt
    — сТатый тСкст, с Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ ограничСниям, Ρ‡Ρ‚ΠΎ ΠΈ tEXt.

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² спСцификации.

CRC

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ сумма CRC-32 . ΠšΡΡ‚Π°Ρ‚ΠΈ Π½Π° днях Π±Ρ‹Π» Ρ‚ΠΎΠΏΠΈΠΊ ΠΎ Π΅Π΅ подсчСтС Π² Windows.

ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ PNG

Π‘ ΠΎΠ±Ρ‰Π΅ΠΉ структурой Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ содСрТаниС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‡Π°Π½ΠΊΠΎΠ². Но ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ… ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ (Π½Π΅ критичСскиС, критичСскиС обязаны Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒΡΡ Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€ΠΎΠΌ, Π° Π½Π΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅), ΠΈ ΠΊΠ°ΠΊ выглядит ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ PNG-Ρ„Π°ΠΉΠ»? А Π²ΠΎΡ‚ ΠΊΠ°ΠΊ:

IHDR

Π‘Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… Π² IHDR содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ поля:

  • Π¨ΠΈΡ€ΠΈΠ½Π°, 4 Π±Π°ΠΉΡ‚Π°
  • Высота, 4 Π±Π°ΠΉΡ‚Π°
  • Битовая Π³Π»ΡƒΠ±ΠΈΠ½Π° (bit depth), опрСдСляСт количСство Π±ΠΈΡ‚ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ сэмпл(Π½Π΅ пиксСль), 1 Π±Π°ΠΉΡ‚
  • Π’ΠΈΠΏ Ρ†Π²Π΅Ρ‚Π°, состоит ΠΈΠ· 3 Ρ„Π»Π°Π³ΠΎΠ² 1 (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠ°Π»ΠΈΡ‚Ρ€Π°), 2 (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ†Π²Π΅Ρ‚, Π½Π΅ ΠΌΠΎΠ½ΠΎΡ…Ρ€ΠΎΠΌΠ½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅), and 4 (присутствуСт Π°Π»ΡŒΡ„Π°-ΠΊΠ°Π½Π°Π»), 1 Π±Π°ΠΉΡ‚
  • ΠœΠ΅Ρ‚ΠΎΠ΄ сТатия. На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ доступно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0 — сТатиС ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ deflate . Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ 0, Ρ‡Π°Π½ΠΊ считаСтся нСраспознанным, ΠΈ Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€ Ρ€Π°ΠΏΠΎΡ€Ρ‚ΡƒΠ΅Ρ‚ ΠΎΠ± ошибкС. 1 Π±Π°ΠΉΡ‚
  • ΠœΠ΅Ρ‚ΠΎΠ΄ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ. Π’Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² случаС сТатия, Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΡƒΠ»Π΅ΠΌ. 1 Π±Π°ΠΉΡ‚
  • Interlace(ΠΏΠ΅Ρ€Π΅ΠΏΠ»Π΅Ρ‚Π΅Π½ΠΈΠ΅) ΠΌΠ΅Ρ‚ΠΎΠ΄. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ порядок ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ доступно 2 значСния: 0 (no interlace) ΠΈ 1 (Adam7 interlace). 1 Π±Π°ΠΉΡ‚

Adam7 interlacing прСкрасно дСмонстрируСт ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠ· Π²ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ (Π΄Π°-Π΄Π°, GIF Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΡ€ΠΎ PNG):

IEND

Π‘ΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎ ΠΊΠΎΠ½Ρ†Π΅ Ρ„Π°ΠΉΠ»Π°, Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… этого Ρ‡Π°Π½ΠΊΠ° Π½Π΅ содСрТит Π½ΠΈΡ‡Π΅Π³ΠΎ.

IDAT

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅, Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅, Π² соотвСтствии с ΠΏΠΎΠ»Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° сТатия Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅. Алгоритм дСкодирования Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ (ΠΎΠ΄Π½Π°ΠΊΠΎ Ссли Π±ΡƒΠ΄ΡƒΡ‚ ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠ΅, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ), Π½ΠΎ Π² довольно Ρ…ΠΎΡ€ΠΎΡˆΠΎ (ΠΈ ΠΏΠΎ-русски) описан .

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ PNG-Ρ„Π°ΠΉΠ» (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ) выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠŸΡ€ΠΈ написании Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ я ставил своСй Π·Π°Π΄Π°Ρ‡Π΅ΠΉ Π΄Π°Ρ‚ΡŒ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŽ ΠΎΠ±Ρ‰ΠΈΠ΅ знания ΠΎ строСнии PNG-Ρ„Π°ΠΉΠ»Π°, для Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ понимания рСкомСндуСтся Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ спСцификации .

Π’ΠΎΠΏΠΈΠΊ Π½Π° Ρ…Π°Π±Ρ€Π΅ ΠΏΡ€ΠΎ строСниС JPEG: habrahabr.ru/blogs/algorithm/102521
Π’ΠΎΠΏΠΈΠΊ Π½Π° Ρ…Π°Π±Ρ€Π΅ ΠΏΡ€ΠΎ строСниС GIF: habrahabr.ru/blogs/algorithm/127083

Бпасибо Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π±ΡƒΠ΄Ρƒ Ρ€Π°Π΄ любой ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠ΅!

Как извСстно, популярным Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ являСтся Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ png, для рСдактирования, Π½Π° ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹, ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ скачивания ΠΌΡ‹ Π²Π°ΠΌ Π΄Π°Π»Π΅Π΅ ΠΈ расскаТСм. ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΡ€ΠΈΡˆΡ‘Π» Π½Π° Π·Π°ΠΌΠ΅Π½Ρƒ популярному Ρ€Π°Π½Π΅Π΅ Π°Π½Π°Π»ΠΎΠ³Ρƒ gif, ΠΎΡΡ‚Π°Π²ΡˆΠ΅ΠΌΡƒΡΡ вострСбованным, Π½ΠΎ ΡƒΠΆΠ΅ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ΠΎΠ². Π˜Π½Ρ‚Π΅Ρ€Π΅Ρ ΠΆΠ΅ ΠΊ Ρ€Π΅ΠΊΠ»Π°ΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌΡƒ Π½Π°ΠΌΠΈ сСйчас ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌΡƒ ΠΈ Π²ΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡŽ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, проявлСн ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ ΠΈ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„Π°ΠΌΠΈ нашСй страны, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΏΠ°Π΄Π°, Π³Π΄Π΅ ΠΎΠ½ цСнится Π΄Π°ΠΆΠ΅ большС.

ВсСго ΠΆΠ΅ для Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ видоизмСнСния ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° png Π² сСти прСдставлСно мноТСство бСсплатных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ с Ρ†Π΅Π»ΡŒΡŽ свободного пользования Π±Π΅Π· всяких ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΈ надобности Π² ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ рСгистрации. Ну Π° Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π±Ρ‹Ρ‚ΡŒ голословным, скаТу, Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ ΠΈ просто ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ png, доступной для бСсплатного скачивания, являСтся ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ GIMP, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ массу достоинств ΠΈ практичСски Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ нСдостатка. БСзусловно, Ссли ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ этот ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ с прославлСнным ΠΈ Π»Π΅Π³Π΅Π½Π΄Π°Ρ€Π½Ρ‹ΠΌ Ρ„ΠΎΡ‚ΠΎΡˆΠΎΠΏΠΎΠΌ, минусы Π½Π°ΠΉΡ‚ΠΈ ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ.

Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ png Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€

ΠžΠΏΡƒΡΠΊΠ°Ρ всякиС подробности, Ρ…ΠΎΡ‡Ρƒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ рСдактирования Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° png Π½Π° ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ прямо сСйчас ΠΈ бСсплатно, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ с массой Π·Π°Π΄Π°Ρ‡, нСзависимо ΠΎΡ‚ Π²Π·Ρ‹ΡΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ, ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Ρ… со стороны ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Одной малСнькой Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΡΡ‚ΡŒΡŽ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ€Π΅ΠΊΠ»Π°ΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΌΠ½ΠΎΠΉ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ настройка, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π°Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ лишь Π΄Ρ€Π°Π³ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ€Π°Π²Π½ΠΎΠ³ΠΎ, Π² эквивалСнтС Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ нСскольким ΠΌΠΈΠ½ΡƒΡ‚Π°ΠΌ. Π₯отя, ΠΏΠΎ ΠΌΠΎΠ΅ΠΌΡƒ мнСнию, ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΏΡ€ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π²ΡˆΠ΅Π³ΠΎ Π² этом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ ΠΎΠ΄ΠΈΠ½ мСсяц, Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… настройках Π½Π΅Ρ‚.

Π“Π»Π°Π²Π½ΠΎΠ΅, ΠΊΠ°ΠΊ я ΡƒΠΆΠ΅ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΠ» Π²Ρ‹ΡˆΠ΅, Π½Π΅ Π·Π°Ρ€ΡƒΡ‡Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ поиска Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ для рСдактирования Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° png, Π° Π΅Π΄ΠΈΠ½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ ΠΏΡ€ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Ρ‚Ρ€Π°Ρ‚Π°Ρ… просто бСсплатно ΠΈ Π±Π΅Π· всяких ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ дистрибутив Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ установкой ΠΈ Π½Π°Ρ‡Π°Π»ΠΎΠΌ использования.

Π§Ρ‚ΠΎ ΠΆ, Π΄ΡƒΠΌΠ°ΡŽ ΠΈΠ· всСго ΠΌΠ½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Ρƒ Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΊ сСбС Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΈΠ»ΠΈ ΠΆΠ΅ Π½ΠΎΡƒΡ‚Π±ΡƒΠΊ ΡƒΠ΄ΠΎΠ±Π½Π΅ΠΉΡˆΠ΅ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с массой достоинств ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ нСдостатками. Ну Π° ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ нСпосрСдствСнно ΠΊ самой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ дистрибутива Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ своСго ΠΏΡ€ΠΈΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ внимания Π½Π° адрСсныС Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ссылки, располоТСнныС Ρ‡ΡƒΡ‚ΡŒ Π½ΠΈΠΆΠ΅ ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ.
05.06.16

27.2K

Иногда Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, содСрТащСС ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹Π΅ элСмСнты, сквозь ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Π»ΡΠ΄Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„ΠΎΠ½. Π’ этих случаях, Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ PNG
изобраТСния, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ способны ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ расскаТСм, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ Π² Π€ΠΎΡ‚ΠΎΡˆΠΎΠΏΠ΅
.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ шаг – это созданиС Ρ„Π°ΠΉΠ»Π°. Для этого ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Adobe Photoshop
и в мСню «Ѐайл
Β» (File

) Π²Π²Π΅Ρ€Ρ…Ρƒ страницы Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ
Β» (New

).

Π—Π°Ρ‚Π΅ΠΌ Π² появившСмся ΠΎΠΊΠ½Π΅ «Новый Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚
Β» (New Document

) создайтС Ρ„Π°ΠΉΠ» Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° составляСт 72 пиксСля Π½Π° дюйм (ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ„Π°ΠΉΠ» ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования Π² Π²Π΅Π±
). А Ρ‚Π°ΠΊΠΆΠ΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«ΠŸΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΉ
Β» (Transparent

) Π² Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ спискС Β«Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Ρ„ΠΎΠ½Π°
Β» (Background Contents

).

*ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ PNG
с ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π² Π€ΠΎΡ‚ΠΎΡˆΠΎΠΏΠ΅
, Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² качСствС Ρ„ΠΎΠ½Π° для сайта, поэтому Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π·Π°Π΄Π°Π½ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: ΡˆΠΈΡ€ΠΈΠ½Π° 3000 пиксСлСй, высота 1730 пиксСлСй, Ρ‡Ρ‚ΠΎ являСтся Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ HD
ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ:

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ Π·Π°Π΄Π°Π»ΠΈ значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Β«OK
Β», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.

Π—Π°Ρ‚Π΅ΠΌ Π² ΠΏΠ°Π½Π΅Π»ΠΈ Β«Π‘Π»ΠΎΠΈ
Β» (Layers

) ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠΌ слоС, Π° Π½Π΅ Π½Π° Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ:

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈ созданиС ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π² зависимости ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ вСрсии Photoshop
, в мСню «Ѐайл
Β» (File

) Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ²:

Photoshop вСрсии Ρ€Π°Π½Π΅Π΅, Ρ‡Π΅ΠΌ CC 2015:

БСйчас ΠΌΡ‹ расскаТСм, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π² Π€ΠΎΡ‚ΠΎΡˆΠΎΠΏΠ΅
, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅Π» Ρ€Π°Π½ΡŒΡˆΠ΅ CC 2015
. Π’ этих вСрсиях ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Β«Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ для Web
Β» (Save for Web & Devices

), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ PNG изобраТСния для использования Π² Π²Π΅Π±Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ этим ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ, просто Π·Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π² мСню Β«Π€Π°ΠΉΠ»
Β» (File

), ΠΈ Π΄Π°Π»Π΅Π΅ – Β«Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ для Web
Β» (Save for Web & Devices

):

Π—Π°Ρ‚Π΅ΠΌ Π² появившСмся ΠΎΠΊΠ½Π΅ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ PNG-24
ΠΈΠ· Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ мСню Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ ΠΎΠΏΡ†ΠΈΠΈ Β«ΠŸΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ
Β» (Transparency

) ΠΈ Β«ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² sRGB
Β» (Convert to sRGB

). Π­Ρ‚ΠΎ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΉ Ρ„ΠΎΠ½ ΠΈ Π΅Π³ΠΎ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ Ρ€Π΅ΠΆΠΈΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² sRGB
, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠ΅ пространство для Π²Π΅Π±.

Поля Β«Π Π°Π·ΠΌΠ΅Ρ€ изобраТСния
Β» (Image Size

) автоматичСски Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ значСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π·Π°Π΄Π°Π»ΠΈ, ΠΊΠΎΠ³Π΄Π° создавали Ρ„Π°ΠΉΠ». Но Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° ΠΏΠ΅Ρ€Π΅Π΄ сохранСниСм, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это сСйчас.

Photoshop вСрсии CC 2015:

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² Π€ΠΎΡ‚ΠΎΡˆΠΎΠΏΠ΅
, Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ с вСрсии CC 2015
опция Β«Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ для Web
Β» (Save for Web & Devices

) в мСню «Ѐайл
Β» (File

) ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π° ΠΊΠ°ΠΊ Legacy
(ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ°Ρ
). И Π·Π°ΠΌΠ΅Ρ‰Π΅Π½Π° Π½Π° Π½ΠΎΠ²ΡƒΡŽ ΠΎΠΏΡ†ΠΈΡŽ «Экспорт
Β» (Export

), которая ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ с Π±ΠΎΠ»Π΅Π΅ быстрым сохранСниСм Π² Ρ„Π°ΠΉΠ»Π΅ мСньшСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ Π² Π»ΡƒΡ‡ΡˆΠ΅ΠΌ качСствС. Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠΏΡ†ΠΈΠ΅ΠΉ «Экспорт
Β», Π½Π°ΠΆΠΌΠΈΡ‚Π΅ мСню Β«Π€Π°ΠΉΠ»
Β» (File

), Π° Π·Π°Ρ‚Π΅ΠΌ β€” Β«Π­ΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ
Β» (Export As

).

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:
Adobe
ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΎΠΏΡ†ΠΈΡŽ Β«Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ для Web
Β» (Save for Web & Devices

) Π² Photoshop CC 2015
, ΠΈ ΠΎΠ½Π° доступна Ρ‡Π΅Ρ€Π΅Π· мСню Π€Π°ΠΉΠ» > Экспорт
(File > Export

) ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ использовании ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ клавиш Command+Option+Shift+S
(для Mac
) ΠΈΠ»ΠΈ Ctrl+Alt+Shift+S
(для ПК
):

Π—Π°Ρ‚Π΅ΠΌ Π² появившСмся ΠΎΠΊΠ½Π΅ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ PNG
ΠΈΠ· Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ мСню Β«Π€ΠΎΡ€ΠΌΠ°Ρ‚
Β» (Format

) ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ ΠΎΠΏΡ†ΠΈΠΈ Β«ΠŸΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ
Β» (Transparency

) ΠΈ Β«ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² sRGB
Β» (Convert to sRGB

).

Поля Β«Π Π°Π·ΠΌΠ΅Ρ€ изобраТСния
Β» (Image Size

) ΠΈ Β«Π Π°Π·ΠΌΠ΅Ρ€ холста
Β» (Canvas Size

) Π΄ΠΎΠ»ΠΆΠ½Ρ‹ автоматичСски Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΡΡ значСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π·Π°Π΄Π°Π»ΠΈ, ΠΊΠΎΠ³Π΄Π° создавали Ρ„Π°ΠΉΠ». Но ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ эти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ эффСкт прозрачности Π² Π€ΠΎΡ‚ΠΎΡˆΠΎΠΏΠ΅
.

2 голоса

Π”ΠΎΠ±Ρ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ суток, ΡƒΠ²Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ. Π£ΠΌΠ΅Π½ΠΈΠ΅ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ с ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹Ρ… Ρ„ΠΎΠ½ΠΎΠΌ нСвСроятно Π½ΡƒΠΆΠ½ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅ΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ сайтов, Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Ρƒ ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌΡƒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ.

Π­Ρ‚ΠΎ самая популярная функция Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Photoshop, Π° ΠΏΠΎΡ‚ΠΎΠΌΡƒ я Ρ€Π΅ΡˆΠΈΠ» максимально ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎ самом процСссС, Π½ΠΎ ΠΈ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² Ρ„ΠΎΡ‚ΠΎΡˆΠΎΠΏΠ΅ Π±Π΅Π· Ρ„ΠΎΠ½Π°.

ΠžΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ трудности с этим, Π½ΠΎ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Π½Π° эту Ρ‚Π΅ΠΌΡƒ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅Ρ‚. Волько нСсколько Ρ‚Π΅ΠΌ Π½Π° Ρ„ΠΎΡ€ΡƒΠΌΠ°Ρ…. Но, я Π±Π΅Ρ€Ρƒ Π½Π° сСбя миссию ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ эту Π½Π΅ΡΠΏΡ€Π°Π²Π΅Π΄Π»ΠΈΠ²ΠΎΡΡ‚ΡŒβ€¦

Π˜Ρ‚Π°ΠΊ, сСйчас я ΠΎΠ΄Π΅Π½Ρƒ Π½Π° сСбя рыцарскиС доспСхи ΠΈ Ρ€Π°Π·Π²Π΅ΡŽ всС страхи, сомнСния, Π½Π΅ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Ρƒ трудности искусства Ρ„ΠΎΡ‚ΠΎΡˆΠΎΠΏΠ½ΠΎΠ³ΠΎ Π² Π±Π΅ΡΡ…ΠΈΡ‚Ρ€ΠΎΡΡ‚Π½ΡƒΡŽ ΠΎΠ±Ρ‹Π΄Π΅Π½Π½ΠΎΡΡ‚ΡŒ. Π― Ρ‚Π°ΠΊΠΆΠ΅ повСдаю ΠΎΠ±ΠΎ всСх тонкостях мастСрства. Π“ΠΎΡ‚ΠΎΠ²ΡŒΡ‚Π΅ΡΡŒ. Β«Π’Π΅Π΄Π°Ρ‚ΡŒΒ» я Π±ΡƒΠ΄Ρƒ ΠΎΡ‡Π΅Π½ΡŒ простым языком, Ρ‡Ρ‚ΠΎΠ±Ρ‹ понятно стало ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡˆΡƒ прощСния Ρƒ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… смущаСт такая Π΄ΠΎΡ‚ΠΎΡˆΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΎΠ½ΠΈ сами всС прСкрасно Π·Π½Π°ΡŽΡ‚.

Π‘ΠΎΠ»Π΅Π΅ Ρ‚Π΅Ρ€ΠΏΠ΅Π»ΠΈΠ²Ρ‹Ρ… я Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€ΡŽ Π·Π° ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅. ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΠΌ.

Π§Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ„ΠΎΡ‚ΠΊΠ° Π±Ρ‹Π»Π° Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠΉ

ΠŸΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ отобраТаСтся Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ шашкой. Если Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π΅Π΅ Π² Google, Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΈ Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΠΎΠ½ Π½Π΅ помСняСтся Ρ†Π²Π΅Ρ‚.

Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, такая шашка Π½Π΅ отобраТаСтся, Ссли ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² поискС ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€Ρƒ. Надо ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация откроСтся.

Π’ΠΎΡ‚ смотритС, я скопировал этот рисунок ΠΈ вставил Π΅Π³ΠΎ Π½Π° Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡŽ поля. НС Π±ΡƒΠ΄Ρƒ Π²Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ я это сдСлал, сСйчас это Π½Π΅ Π²Π°ΠΆΠ½ΠΎ. Π‘Π°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ всС части поля, ΠΊΡƒΠ±ΠΈΠΊΠΈ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ Π±Ρ‹Π»ΠΈ Π²Ρ‹Ρ€Π΅Π·Π°Π½Ρ‹ ΠΈ Π½Π°Π»ΠΎΠΆΠ΅Π½Ρ‹ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ.

Если Π±Ρ‹ я Π½Π΅ нашСл Π² поискС Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡŽ с шашкой, Ρ‚ΠΎ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ выглядСла совсСм ΠΈΠ½Π°Ρ‡Π΅. Π€ΠΎΠ½ Π±Ρ‹Π» Π±Ρ‹ Π±Π΅Π»Ρ‹ΠΌ ΠΈ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊ? Π­Ρ‚Π° ΡˆΠ°ΡˆΠ΅Ρ‡ΠΊΠ° – общСпринятый ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ, Ссли Π²Ρ‹ Π΅Π³ΠΎ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ Π² этой части ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ Ρ†Π²Π΅Ρ‚Π° Π½Π΅Ρ‚ совсСм, ΠΈ ΠΏΡ€ΠΈ Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ниТнюю Ρ‡Π°ΡΡ‚ΡŒ рисунка. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ отобраТаСтся ΠΈ . Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Ρ„ΠΎΠ½ ΠΈΠ· Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ, Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вмСсто Ρ†Π²Π΅Ρ‚Π°, Π²Ρ‹ смогли ΡƒΠ·Ρ€Π΅Ρ‚ΡŒ Π²ΠΎΡ‚ этот Π·Π°Π²Π΅Ρ‚Π½Ρ‹ΠΉ ΡƒΠ·ΠΎΡ€. Π¨Π°ΡˆΠΊΡƒ.

Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹Π΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ

ВсС ΠΌΡ‹ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ ΠΊ Ρ‚Π°ΠΊΠΎΠΌΡƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ, ΠΊΠ°ΠΊ jpeg. НСкоторыС люди Π΄Π°ΠΆΠ΅ ΠΈ Π½Π΅ Π·Π½Π°ΡŽΡ‚ ΠΎ сущСствовании Π΄Ρ€ΡƒΠ³ΠΈΡ…. Однако, ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½Π° своСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Β«ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅Β» Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ, Π²Π°ΠΌ понадобится ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ β€” png.

Π’ΠΈΠ΄ΠΈΡ‚Π΅, ΠΏΠΎΠΌΠΈΠΌΠΎ шашки, Π² Google ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда вмСстС с Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ это сочСтаниС Π±ΡƒΠΊΠ².

Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π°, png ΠΈ Π³ΠΎΡ‚ΠΎΠ²ΠΎ. Он Π΅ΡΡ‚ΡŒ Π² любой вСрсии. Если Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚Π΅ – ΠΈΡ‰ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Π΅Π΅. Π‘Π΅Π· Π½Π΅Π³ΠΎ Π½ΠΈΠΊΠ°ΠΊ. Π£Π²Π΅Ρ€ΡΡŽ вас.

Π—Π°Ρ‡Π΅ΠΌ Π±Ρ‹Π»ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚? ВсС Π΄Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ популярный jpeg, Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ. Он мСняСт Π΅Π΅ Π½Π° ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹ΠΉ Π±Π΅Π»Ρ‹ΠΉ.

Как ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Ρ„ΠΎΠ½Π°: простой ΠΈ довольно быстрый способ Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… Π·Π°ΠΌΠΎΡ€ΠΎΡ‡Π΅ΠΊ

Π’ ΠΌΠΎΠ΅ΠΌ Π±Π»ΠΎΠ³Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΡΡ‚Π°Ρ‚ΡŒΡŽ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ я ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽ 4 инструмСнта ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠΆΡƒ Π²ΠΈΠ΄Π΅ΠΎ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ 3 способа ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Ρ„ΠΎΠ½Π° Π½Π° рисункС (). ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Π΅, Ссли Π²Π°ΠΌ интСрСсно. БСйчас я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠ΅ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ Π±Π΅Π· этого ΡΡ‚Π°Ρ‚ΡŒΡ Π±Ρ‹Π»Π° Π±Ρ‹ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΠΉ. Мало Π»ΠΈ, ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ Π·Π°Ρ…ΠΎΡ‡Π΅Ρ‚ Π»Π°Π·ΠΈΡ‚ΡŒ ΠΏΠΎ ΠΌΠΎΠ΅ΠΌΡƒ Π±Π»ΠΎΠ³Ρƒ. А Ρ‚ΡƒΡ‚ всС Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС.

Π˜Ρ‚Π°ΠΊ, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ.

Находим инструмСнт Β«Π€ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ ластик». Если Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΅Π³ΠΎ ΠΎΡ‚Ρ‹ΡΠΊΠ°Ρ‚ΡŒ, Ρ‚ΠΎ ΠΏΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚Π΅ нСсколько сСкунд ΠΌΡ‹ΡˆΠΊΡƒ с Π·Π°ΠΆΠ°Ρ‚ΠΎΠΉ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Π½Π° клавишС ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ластика. НуТный инструмСнт откроСтся. Π’Ρ‹ смоТСтС Π΅Π³ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² ΠΏΠΎ Π½Π΅ΠΌΡƒ.

ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π΄ΠΈΠ°ΠΌΠ΅Ρ‚Ρ€ ластика, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‚ΠΈΡ€Π°Ρ‚ΡŒ Π±Ρ‹Π»ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ²ΠΎΠ·ΡŽΠΊΠ°ΠΉΡ‚Π΅ ΠΏΠΎ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΌ элСмСнтам Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅. Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ шашка Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ, Π° Ρ†Π²Π΅Ρ‚ ΠΈΡΡ‡Π΅Π·Π°Ρ‚ΡŒ!

НадСюсь, Ρ‡Ρ‚ΠΎ послС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚Π΅, Ρƒ вас Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ вопроса Π² ΠΊΠ°ΠΊΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ рисунок. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅ PNG.

Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ стирания Π½Π΅ назовСшь самым Π»ΡƒΡ‡ΡˆΠΈΠΌ ΠΈ нСвСроятно ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ я Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π²Π°ΠΌ всС-Ρ‚Π°ΠΊΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ мою ΡΡ‚Π°Ρ‚ΡŒΡŽ, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΡΠ²ΡΡ‰Π΅Π½Π½ΡƒΡŽ этой Ρ‚Π΅ΠΌΠ΅.

А Ссли Π²Π°ΠΌ интСрСсно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ„ΠΎΡ‚ΠΎΡˆΠΎΠΏΠ΅, Ρ‚ΠΎ ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ Π²Π°ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π½Π° этом Π·Π°Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ! Бпрос Π΅ΡΡ‚ΡŒ. Π’Ρ‹ Π±Π΅Π· Ρ‚Ρ€ΡƒΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ , ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ всСго интСрСсного. ΠŸΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, это Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, ΠΎΡ‚ΠΊΡ€Ρ‹Π² нСсколько сайтов для фрилансСров.

Π”ΡƒΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Ρƒ вас Π½Π΅ получится ΠΈΠ»ΠΈ Π²Ρ‹ слишком стары для этого Π΄Π΅Ρ€ΡŒΠΌΠ°? НС Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ? ΠŸΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, это всС Π½Π΅Π»Π΅ΠΏΡ‹Π΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΊΠΈ. Π― ΡŽΡ€ΠΈΡΡ‚ ΠΈ Π·Π°Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽ достаточно, Π½ΠΎ … Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ…ΠΎΠ±Π±ΠΈ, любимоС ΡƒΠ²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅? Π’Ρ‹ ΠΆΠΈΠ²Π΅Ρ‚Π΅ ΠΏΠΎΠ»Π½ΠΎΠΉ Тизнью? Π’Π°ΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ скучно?

Π§Ρ‚ΠΎ Π±Ρ‹ Π²Ρ‹ Π½ΠΈ Π·Π½Π°Π»ΠΈ ΠΈ Ρ‡Π΅ΠΌ Π±Ρ‹ Π½ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Π»ΠΈΡΡŒ. Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ массу Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй. ВпуститС Π² свою Тизнь измСнСния. Если дСньги вас Π½Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‚ – это Π΅Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ большС шансов Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ ΡΡ‚Π°Ρ‚ΡŒ Π΄ΠΎΡ€ΠΎΠ³ΠΈΠΌ, ΠΊΡ€ΡƒΡ‚Ρ‹ΠΌ ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΌ. ВсС извСстныС люди Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ€Π°Π΄ΠΈ ΠΏΡ€ΠΈΠ±Ρ‹Π»ΠΈ, ΠΎΠ½ΠΈ трудятся, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π»ΡŽΠ±ΡΡ‚ Ρ‚ΠΎ, Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ. Π Π΅Π΄ΠΊΠΎ ΠΊΡ‚ΠΎ ΠΈΠ· Π½ΠΈΡ… Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ это Β«Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉΒ».

ΠŸΡ€ΠΎΡˆΠ»ΠΎ врСмя, ΠΊΠΎΠ³Π΄Π° основноС врСмя Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ» Π·Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ ΠΈΠ»ΠΈ Ρ‚Π΅Π»Π΅Π²ΠΈΠ·ΠΎΡ€ΠΎΠΌ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ всС Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ΡΡ, ΡƒΠ»ΡƒΡ‡ΡˆΠ°ΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ свои Π½Π°Π²Ρ‹ΠΊΠΈ ΠΈ дСлятся с людьми Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π·Π½Π°ΡŽΡ‚. По сути Ρ‚Π°ΠΊ всСгда Π±Ρ‹Π»ΠΎ, ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»ΠΈΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±Ρ‹.

ΠšΡΡ‚Π°Ρ‚ΠΈ, Π½Π΅ Ρ‚Π°ΠΊ Π΄Π°Π²Π½ΠΎ Ρ‡ΠΈΡ‚Π°Π» сСкрСты долголСтия кавказских Π³ΠΎΡ€Ρ†Π΅Π². Один ΠΈΠ· ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊ Π½ΠΈΠΌ постоянно Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ²Π΅Ρ‚ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ Π²Π°ΠΆΠ½Ρ‹ΠΌ вопросом. Π‘Ρ‚Π°Ρ€ΠΈΠΊΠΈ Ρ‡ΡƒΠ²ΡΡ‚Π²ΡƒΡŽΡ‚ сСбя Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ, Π° ΠΏΠΎΡ‚ΠΎΠΌΡƒ Π½Π΅ ΠΈΡΠΏΡ‹Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… эмоций ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ старости. На КавказС Π½Π΅ Π±ΠΎΡΡ‚ΡŒΡΡ ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ старыми.

ΠšΡΡ‚Π°Ρ‚ΠΈ, ΠΏΠΎΠ·ΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ настрой – это Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΡ… сСкрСт. Π‘Ρ‚Π°Ρ€Ρ†Ρ‹ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ со Π·Π»Ρ‹ΠΌΠΈ, Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈ скучными людьми, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ интСрСсных ΡƒΠ²Π»Π΅Ρ‡Π΅Π½ΠΈΠΉ, Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ, Π° ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‚Π°ΠΊΠΎΠΉ ΠΎΠ±Ρ€Π°Π· ΠΆΠΈΠ·Π½ΠΈ ΠΊΡ€Π°ΠΉΠ½Π΅ Π½Π΅Π²Ρ‹Π³ΠΎΠ΄Π΅Π½, особСнно Π² ΠΏΠΎΠΆΠΈΠ»ΠΎΠΌ возрастС.

Π—Π°Π½ΠΈΠΌΠ°ΠΉΡ‚Π΅ΡΡŒ Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹ΠΌ. Если Π²Ρ‹ Π»ΡŽΠ±ΠΈΡ‚Π΅ Ρ„ΠΎΡ‚ΠΎΡˆΠΎΠΏ – ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° курс Π—ΠΈΠ½Π°ΠΈΠ΄Ρ‹ Π›ΡƒΠΊΡŒΡΠ½ΠΎΠ²ΠΎΠΉ β€” Β«Π€ΠΎΡ‚ΠΎΡˆΠΎΠΏ с нуля


Β» ΠΈ ΠΎΠ²Π»Π°Π΄Π΅ΠΉΡ‚Π΅ ΠΈΠΌ Π² ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²Π΅. ΠžΡ‡Π΅Π½ΡŒ быстро Ρƒ вас появится ΠΏΡ€ΠΈΠ±Ρ‹Π»ΡŒΠ½ΠΎΠ΅ Ρ…ΠΎΠ±Π±ΠΈ. НС Ρ‚Π°ΠΊ ΡƒΠΆ ΡƒΠ²Π»Π΅Ρ‡Π΅Π½Ρ‹ Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ? ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, ΠΈ создавайтС свои ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹.

Если Π²Π°ΠΌ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»Π°ΡΡŒ эта ΡΡ‚Π°Ρ‚ΡŒΡ, ΠΈ я хотя Π±Ρ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ заинтСрСсовал вас – ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π° рассылку. ΠŸΡƒΡΡ‚ΡŒ Π½Π΅ сСйчас, Π½ΠΎ Π΄Π°ΠΉΡ‚Π΅ сСбС шанс Π·Π°Π½ΡΡ‚ΡŒΡΡ Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹ΠΌ. Π― Π±ΡƒΠ΄Ρƒ ΠΏΡ€ΠΈΡΡ‹Π»Π°Ρ‚ΡŒ Π²Π°ΠΌ свои ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ дСньги Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ… вас Π²Π΄ΠΎΡ…Π½ΠΎΠ²ΠΈΡ‚ Π½Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅ ΠΈ ΠΏΠΎΠΊΠ° нСизвСстноС. Π’Ρ‹ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ это интСрСсно ΠΈ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ сами, Π° потом… ΠΊΡ‚ΠΎ Π·Π½Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΌ?

ΠžΠ±Π΅Ρ€Π½Π΅Ρ‚ΡΡ Π»ΠΈ Ρ…ΠΎΠ±Π±ΠΈ Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ большСС ΠΈΠ»ΠΈ Π²Ρ‹ просто ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ своих Ρ‚Ρ€ΡƒΠ΄ΠΎΠ² Π΄Ρ€ΡƒΠ·ΡŒΡΠΌ, Π΄Π°Π±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΠΎΡ…Π²Π°Π»Ρƒ ΠΈ восхищСниС? Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π²Ρ‹ встанСтС с Π΄ΠΈΠ²Π°Π½Π° ΠΈ сдСлаСтС Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ вас Π·Π° Ρ€Π°ΠΌΠΊΠΈ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ. Π’Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ свою Тизнь. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…Π²Π°Π»ΡŒΠ½ΠΎ.

Π― искрСннС ТСлаю Π²Π°ΠΌ успСхов Π² Π²Π°ΡˆΠΈΡ… начинаниях ΠΈ надСюсь, Ρ‡Ρ‚ΠΎ эта наша встрСча Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ послСднСй.

Анализ структуры Ρ„Π°ΠΉΠ»Π° изобраТСния PNG (5)

5.2.3 Анализ структуры Ρ„Π°ΠΉΠ»Π° изобраТСния PNG (5)

Рисунок 5-24 ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ структуру Π΄Π°Π½Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ (PLTE) Π² pic1.png.

498)this.style.width=498;» border=0<Β 
(НаТмитС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ) Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ рисунка 5-24 (PLTE) Π² Ρ„Π°ΠΉΠ»Π΅ изобраТСния pic1.png
498)this.style.width=498;» border=0<Β 
(НаТмитС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ) Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ рисунка 5-24 (PLTE) Π² Ρ„Π°ΠΉΠ»Π΅ изобраТСния pic1.png

Π’Π°Π±Π»ΠΈΡ†Π° 5-21 ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ (PLTE) Π² Ρ„Π°ΠΉΠ»Π΅ изобраТСния pic1.png.

Π’Π°Π±Π»ΠΈΡ†Π° 5-21 ЗначСния ΠΏΠΎΠ»Π΅ΠΉ Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ (PLTE) Π² Ρ„Π°ΠΉΠ»Π΅ изобраТСния pic1.png

ШСстнадцатСричноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

описаниС

00 00 03 00

Π”Π»ΠΈΠ½Π° Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… PLTE, 00 00 03 00 = 768

50 4C 54 45

Π€Π»Π°Π³ Ρ‚ΠΈΠΏΠ° Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 50 4C 54 45 ASCII, Ρ€Π°Π²Π½ΠΎΠ΅ PLTE

00 00 00

ΠŸΠ°Π»ΠΈΡ‚Ρ€Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ индСкс

FF FF FF

ΠŸΠ°Π»ΠΈΡ‚Ρ€Π° 2-ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ

EA FF FF

ΠŸΠ°Π»ΠΈΡ‚Ρ€Π° 3-ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ

…………

ИндСкс ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ …

E4 DC DC

ΠŸΠ°Π»ΠΈΡ‚Ρ€Π° 255 ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ

FF FF FF

ΠŸΠ°Π»ΠΈΡ‚Ρ€Π° 256-ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ

7D 2C 3D AD

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ CRC

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π°Π½Π°Π»ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…. Богласно ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Π°Π½Π°Π»ΠΈΠ·Π°, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Π±Π»ΠΎΠΊΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… являСтся Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ (tRNS). Для 256-Ρ†Π²Π΅Ρ‚Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ (tRNS) ΠΈΠΌΠ΅Π΅Ρ‚ Π² ΠΎΠ±Ρ‰Π΅ΠΉ слоТности 256 элСмСнтов, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… соотвСтствуСт Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Π² Π±Π»ΠΎΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹, 00 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΉ, Π° FF ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½Π΅ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΉ.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния (tRNS) ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°:

PNG_CHUNK_HEADER chunkHdr;
BYTE trnsChunkData[chunkHdr.btChunkLen]
DWORD trnsCrc;

На рисункС 5-25 ΠΏΠΎΠΊΠ°Π·Π°Π½Π° структура Π΄Π°Π½Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠ° ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния (tRNS) Π² pic1.png.

498)this.style.width=498;» border=0<Β 
(НаТмитС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ) Рисунок 5-25 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния (tRNS) Π² Ρ„Π°ΠΉΠ»Π΅ изобраТСния pic1.png

Π’Π°Π±Π»ΠΈΡ†Π° 5-22 ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния (tRNS) Π² Ρ„Π°ΠΉΠ»Π΅ изобраТСния pic1.png.

Π’Π°Π±Π»ΠΈΡ†Π° 5-22 ЗначСния ΠΏΠΎΠ»Π΅ΠΉ Π² Π±Π»ΠΎΠΊΠ΅ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния (tRNS) Π² Ρ„Π°ΠΉΠ»Π΅ изобраТСния pic1.png

ШСстнадцатСричноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

описаниС

00 00 01 00

Π΄Π»ΠΈΠ½Π° Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… tRNS, 00 00 01 00 = 256

74 52 4E 53

Π€Π»Π°Π³ Ρ‚ΠΈΠΏΠ° Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ASCII 74 52 4E 53 Ρ€Π°Π²Π½ΠΎ tRNS

FF~00

ΠŸΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹Π΅ изобраТСния Π±Π»ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, всСго 256, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
Один элСмСнт Π½Π° доскС, 00 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΉ, FF ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½Π΅ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΉ

53 F7 07 25

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ CRC

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅: Π² соотвСтствии с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π° анализируСтся, Ρ‡Ρ‚ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Π±Π»ΠΎΠΊΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… являСтся Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния (IDAT). Для 256-Ρ†Π²Π΅Ρ‚Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния (IDAT) Ρ…Ρ€Π°Π½ΠΈΡ‚ Π½ΠΎΠΌΠ΅Ρ€ индСкса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ†Π²Π΅Ρ‚ΠΎΠ²ΡƒΡŽ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρƒ.Для ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ 16-Π±ΠΈΡ‚Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ†Π²Π΅Ρ‚ΠΎΠ², Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния (IDAT) Ρ…Ρ€Π°Π½ΠΈΡ‚ фактичСский Ρ†Π²Π΅Ρ‚ пиксСля, упорядочСнный ΠΏΠΎ 0xRRGGBB. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π±Π»ΠΎΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния (IDAT) ΡΠΆΠΈΠΌΠ°ΡŽΡ‚ΡΡ ΠΏΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρƒ LZ77.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния (IDAT) ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°:

PNG_CHUNK_HEADER chunkHdr;
BYTE idatChunkData[chunkHdr.btChunkLen];
DWORD idatCrc;

Из MNG в PNG

БСрвис позволяСт произвСсти ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ (ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ) ΠΈΠ· Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° MNG Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ PNG

MNG β€” это Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ графичСских Ρ„Π°ΠΉΠ»ΠΎΠ². ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ всСх Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² сТатия PNG ΠΈ JPEG (срСди ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈ Π³Π°ΠΌΠΌΠ°-коррСкция, ΠΈ ΠΏΠΎΠ»ΡƒΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ) для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ изобраТСния. Π‘Ρ‹Π» доступСн Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Mozilla с 2000 Π΄ΠΎ 2003 Π³ΠΎΠ΄Π°. Π’Π΅ΠΏΠ΅Ρ€ΡŒ поддСрТиваСтся Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ Konqueror.
MNG, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Multiple-image Network Graphics, ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ°ΠΌΡƒΡŽ Ρ‚Π΅ΡΠ½ΡƒΡŽ связь с PNG. Π’ 1995 Π³ΠΎΠ΄Ρƒ, ΠΊΠΎΠ³Π΄Π° приступили ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° PNG, Π±Ρ‹Π»ΠΎ принято Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ. По простой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅: Ρ‚ΠΎΠ³Π΄Π° эту ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ примСняли нСчасто. И всС-Ρ‚Π°ΠΊΠΈ приступили ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ MNG, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ вСрсиСй PNG, которая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ. ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°Ρ вСрсия спСцификации MNG появилась Π½Π° свСт Π² Π½Π°Ρ‡Π°Π»Π΅ 2001 Π³ΠΎΠ΄Π°.
Π€ΠΎΡ€ΠΌΠ°Ρ‚ MNG – это ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΉ растровый Π°Π½Π°Π»ΠΎΠ³ Adobe Flash. Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠ°Π΄Ρ€Π΅ мноТСство слоСв, ΠΈ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΎΠ±Ρ€Π΅Π·Π°Ρ‚ΡŒ. Π­Ρ‚ΠΈΠΌ ΠΈ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° MNG. Π’ ΠΈΡ‚ΠΎΠ³Π΅ структура Ρ„Π°ΠΉΠ»ΠΎΠ² MNG Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ структуру PNG. ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ лишь Π² ΠΌΠ΅Ρ‚ΠΊΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. А Ρ‚Π°ΠΊΠΆΠ΅ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ примСняСтся Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ большС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π±Π»ΠΎΠΊΠΎΠ² (chunk). ΠšΠ°Π΄Ρ€Ρ‹ MNG ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ PNG ΠΈΠ»ΠΈ JNG.
Π’ сравнСнии с GIF этот Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ. Π’ сравнСнии с JPEG обСспСчиваСт самый малСнький Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° Π·Π° счСт ΠΏΠΎΡ‚Π΅Ρ€ΡŒ ΠΏΡ€ΠΈ сТатии. Π’ сравнСнии с PNG сТатиС осущСствляСтся Π±Π΅Π· искаТСний. БСйчас MNG Π½Π΅ поддСрТиваСтся популярными Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ обСспСчСниСм, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΅Π³ΠΎ смСнил Π±ΠΎΠ»Π΅Π΅ простой Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ APNG.

PNG – это Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ растрового изобраТСния, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся компания PNG Development Group. НазваниС PNG – это Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° ΠΎΡ‚ Portable Network Graphic. Π­Ρ‚ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго, Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ для размСщСния Π½Π° Π²Π΅Π±-страницах, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ„Π°ΠΉΠ»Ρ‹ PNG ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ сТатиС ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ Deflate, Π½Π΅ тСряя качСства. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π±Ρ‹Π»Π° прСдпринята для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ GIF, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±Ρ‹Π»ΠΎ Π½Π΅ΠΌΠ°Π»ΠΎ ΠΏΡ€Π΅Ρ‚Π΅Π½Π·ΠΈΠΉ. ΠšΠ°Ρ‡Π΅ΡΡ‚Π²ΠΎ изобраТСния ΠΈ характСристики Ρƒ PNG оказались Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ GIF ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρƒ CMYK.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ сСрвисы

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ элСмСнта PowerΒ BI для Π±ΠΎΠ»Π΅Π΅ эффСктивного использования встроСнной бизнСс-Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ PowerΒ BI — Power BI



  • Π§Ρ‚Π΅Π½ΠΈΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 2Β ΠΌΠΈΠ½

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅

Π›ΡƒΡ‡ΡˆΠΈΠΉ способ Π½Π°Ρ‡Π°Ρ‚ΡŒ созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ элСмСнта PowerΒ BIΒ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ срСдство Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов PowerΒ BI pbiviz.The best way to start creating a new Power BI visual is to use the Power BI visuals pbiviz tool.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт PowerΒ BI, ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:To create a new visual, navigate to the directory you want the Power BI visual to reside in, and run the command:

pbiviz new <visual project name>

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ создаСтся ΠΏΠ°ΠΏΠΊΠ° Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов PowerΒ BI, которая содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹:Running this command creates a Power BI visual folder that contains the following files:

project
β”œβ”€β”€β”€.vscode
β”‚   β”œβ”€β”€β”€launch.json
β”‚   └───settings.json
β”œβ”€β”€β”€assets
β”‚   └───icon.png
β”œβ”€β”€β”€node_modules
β”œβ”€β”€β”€src
β”‚   β”œβ”€β”€β”€settings.ts
β”‚   └───visual.ts
β”œβ”€β”€β”€style
β”‚   └───visual.less
β”œβ”€β”€β”€capabilities.json
β”œβ”€β”€β”€package-lock.json
β”œβ”€β”€β”€package.json
β”œβ”€β”€β”€pbiviz.json
β”œβ”€β”€β”€tsconfig.json
└───tslint.json

ОписаниС ΠΏΠ°ΠΏΠΊΠΈ ΠΈ Ρ„Π°ΠΉΠ»Π°Folder and file description

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ содСрТатся свСдСния ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΈ Ρ„Π°ΠΉΠ»Π΅ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСт срСдство Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов PowerΒ BI pbiviz.This section provides information for each folder and file in the directory that the Power BI visuals pbiviz tool creates.

.vscode.vscode

Π­Ρ‚Π° ΠΏΠ°ΠΏΠΊΠ° содСрТит ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° VSΒ Code.This folder contains the VS code project settings.

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» .vscode/settings.json.To configure your workspace, edit the .vscode/settings.json file.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ User and Workspace Settings (ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ области)For more information, see User and Workspace Settings

рСсурсыassets

Π­Ρ‚Π° ΠΏΠ°ΠΏΠΊΠ° содСрТит Ρ„Π°ΠΉΠ» icon.png.This folder contains the icon.png file.

БрСдство Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов PowerΒ BI ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ этот Ρ„Π°ΠΉΠ» Π² качСствС Π·Π½Π°Ρ‡ΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ элСмСнта PowerΒ BI Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ PowerΒ BI.The Power BI visuals tool uses this file as the new Power BI visual icon in the Power BI visualization pane.

srcsrc

Π­Ρ‚Π° ΠΏΠ°ΠΏΠΊΠ° содСрТит исходный ΠΊΠΎΠ΄ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ элСмСнта.This folder contains the visual’s source code.

Π’ этой ΠΏΠ°ΠΏΠΊΠ΅ срСдство Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов PowerΒ BI создаСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹:In this folder, the Power BI visuals tool creates the following files:

  • visual.tsΒ β€” основной исходный ΠΊΠΎΠ΄ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ элСмСнта;visual.ts — The visual’s main source code.
  • settings.tsΒ β€” ΠΊΠΎΠ΄ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ элСмСнта.settings.ts — The code of the visual’s settings. ΠšΠ»Π°ΡΡΡ‹ Π² Ρ„Π°ΠΉΠ»Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ интСрфСйс для опрСдСлСния свойств Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ элСмСнта.The classes in the file provide an interface for defining your visual’s properties.

Π‘Ρ‚ΠΈΠ»ΡŒstyle

Π­Ρ‚Π° ΠΏΠ°ΠΏΠΊΠ° содСрТит Ρ„Π°ΠΉΠ» visual.less, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТатся стили Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ элСмСнта.This folder contains the visual.less file, which holds the visual’s styles.

capabilities.jsoncapabilities.json

Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» содСрТит основныС свойства ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (ΠΈΠ»ΠΈ возмоТности) Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ элСмСнта.This file contains the main properties and settings (or capabilities) for the visual. Он позволяСт ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, свойства ΠΈ сопоставлСниС прСдставлСний Π΄Π°Π½Π½Ρ‹Ρ… для Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ элСмСнта.It allows the visual to declare supported features, objects, properties, and data view mapping.

package-lock.jsonpackage-lock.json

Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» создаСтся автоматичСски для любой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π³Π΄Π΅ npm измСняСт Π»ΠΈΠ±ΠΎ Π΄Π΅Ρ€Π΅Π²ΠΎ node_modules, Π»ΠΈΠ±ΠΎ Ρ„Π°ΠΉΠ» package.json.This file is automatically generated for any operations where npm modifies either the node_modules tree, or the package.json file.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎΠ± этом Ρ„Π°ΠΉΠ»Π΅ см. Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ npm-package-lock.json.For more information about this file, see the official npm-package-lock.json documentation.

package.jsonpackage.json

Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» описываСт ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.This file describes the project package. Он содСрТит свСдСния ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Π΅Π³ΠΎ Π°Π²Ρ‚ΠΎΡ€Π°Ρ…, описаниС ΠΈ зависимости ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.It contains information about the project such as authors, description, and project dependencies.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎΠ± этом Ρ„Π°ΠΉΠ»Π΅ см. Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ npm-package.json.For more information about this file, see the official npm-package.json documentation.

pbiviz.jsonpbiviz.json

Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» содСрТит ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ элСмСнта.This file contains the visual metadata.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° pbiviz.json с коммСнтариями, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ записи ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Записи ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ….To view an example pbiviz.json file with comments describing the metadata entries, see the metadata entries section.

tsconfig.jsontsconfig.json

Π€Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ для TypeScript.A configuration file for TypeScript.

Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ *TS-Ρ„Π°ΠΉΠ»Ρƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находится основной класс Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ элСмСнта, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² свойствС visualClassName Π² Ρ„Π°ΠΉΠ»Π΅ pbiviz.json.This file must contain the path to *.ts file where the main class of the visual is located, as specified in the visualClassName property in the pbiviz.json file.

tslint.jsontslint.json

Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» содСрТит ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ TSLint.This file contains the TSLint configuration.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΊΠΎΠ΄Π° ΠΈΠ· Ρ„Π°ΠΉΠ»Π° pbiviz.json ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ записи ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ….The comments in the following code caption from the pbiviz.json file, describe the metadata entries.

{
  "visual": {
     // The visual's internal name.
    "name": "<visual project name>",

    // The visual's display name.
    "displayName": "<visual project name>",

    // The visual's unique ID.
    "guid": "<visual project name>23D8B823CF134D3AA7CC0A5D63B20B7F",

    // The name of the visual's main class. Power BI creates the instance of this class to start using the visual in a Power BI report.
    "visualClassName": "Visual",

    // The visual's version number.
    "version": "1.0.0",
    
    // The visual's description (optional)
    "description": "",

    // A URL linking to the visual's support page (optional).
    "supportUrl": "",

    // A link to the source code available from GitHub (optional).
    "gitHubUrl": ""
  },
  // The version of the Power BI API the visual is using.
  "apiVersion": "2.6.0",

  // The name of the visual's author and email.
  "author": { "name": "", "email": "" },

  // 'icon' holds the path to the icon file in the assets folder; the visual's display icon.
  "assets": { "icon": "assets/icon.png" },

  // Contains the paths for JS libraries used in the visual.
  // Note: externalJS' isn't used in the Power BI visuals tool version 3.x.x or higher.
  "externalJS": null,

  // The path to the 'visual.less' style file.
  "style": "style/visual.less",

  // The path to the `capabilities.json` file.
  "capabilities": "capabilities.json",

  // The path to the `dependencies.json` file which contains information about R packages used in R based visuals.
  "dependencies": null,

  // An array of paths to files with localizations.
  "stringResources": []
}

Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΠ΅ дСйствияNext steps

Руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Π’ этом руководствС даётся Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² nginx ΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ
Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ простыС Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½Ρ‹ с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ.
ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ nginx ΡƒΠΆΠ΅ установлСн Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ читатСля.
Если Π½Π΅Ρ‚, см. Установка nginx.
Π’ этом руководствС описываСтся, ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ nginx
ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ,
ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ, ΠΊΠ°ΠΊ устроСн ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΈ описываСтся,
ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ nginx для Ρ€Π°Π·Π΄Π°Ρ‡ΠΈ статичСского содСрТимого, ΠΊΠ°ΠΊ
Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ прокси-сСрвСр Π½Π° nginx, ΠΈ ΠΊΠ°ΠΊ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ nginx с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ
FastCGI.

Π£ nginx Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΈ нСсколько Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов.
Основная Π·Π°Π΄Π°Ρ‡Π° Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ процСсса — Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ
ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌΠΈ процСссами.
Π Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Ρ„Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ запросов.
nginx ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚
модСль, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π½Π° событиях, ΠΈ зависящиС ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы
ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ для эффСктивного распрСдСлСния запросов ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌΠΈ процСссами.
ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов задаётся Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΈ
ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ фиксированным для Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ автоматичСски
ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π°Π²Π½Ρ‹ΠΌ числу доступных процСссорных ядСр (см.
worker_processes).

Как Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ nginx ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, опрСдСляСтся Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅.
По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» называСтся nginx.conf
ΠΈ располоТСн Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅
/usr/local/nginx/conf,
/etc/nginx ΠΈΠ»ΠΈ
/usr/local/etc/nginx.

Запуск, остановка, ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ nginx, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ исполняСмый Ρ„Π°ΠΉΠ».
Когда nginx Π·Π°ΠΏΡƒΡ‰Π΅Π½, ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ, вызывая исполняСмый Ρ„Π°ΠΉΠ» с
ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ -s.
Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис:

nginx -s сигнал

Π“Π΄Π΅ сигнал ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½ΠΈΠΆΠ΅ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ…:

  • stopΒ β€” быстроС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅
  • quitΒ β€” ΠΏΠ»Π°Π²Π½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅
  • reloadΒ β€” ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°
  • reopenΒ β€” ΠΏΠ΅Ρ€Π΅ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π»ΠΎΠ³-Ρ„Π°ΠΉΠ»ΠΎΠ²

НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ процСссы nginx с ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ΠΌ окончания
обслуТивания Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… запросов Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌΠΈ процСссами, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ
ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

nginx -s quit

Команда Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΠΏΠΎΠ΄ Ρ‚Π΅ΠΌ ΠΆΠ΅
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, ΠΏΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π±Ρ‹Π» Π·Π°ΠΏΡƒΡ‰Π΅Π½ nginx.

ИзмСнСния, сдСланныС Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅,
Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹, ΠΏΠΎΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚
Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π° nginx’у ΠΈΠ»ΠΈ ΠΎΠ½ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡ‰Π΅Π½.
Для ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅:

nginx -s reload

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ² сигнал, Π³Π»Π°Π²Π½Ρ‹ΠΉ процСсс провСряСт ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ синтаксиса Π½ΠΎΠ²ΠΎΠ³ΠΎ
ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈ пытаСтся ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽΡΡ
Π² Π½Ρ‘ΠΌ.
Если это Π΅ΠΌΡƒ удаётся, Π³Π»Π°Π²Π½Ρ‹ΠΉ процСсс запускаСт Π½ΠΎΠ²Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы
ΠΈ отправляСт сообщСния старым Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ процСссам с Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒΡΡ.
Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС, Π³Π»Π°Π²Π½Ρ‹ΠΉ процСсс ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ измСнСния ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚
Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со старой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ.
Π‘Ρ‚Π°Ρ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒΡΡ,
ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°ΡŽΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ запросы ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ запросы
Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° всС Ρ‚Π°ΠΊΠΈΠ΅ запросы Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ обслуТСны.
ПослС этого старыС Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ΡΡ.

ΠŸΠΎΡΡ‹Π»Π°Ρ‚ΡŒ сигналы процСссам nginx ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ срСдствами Unix,
Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° kill.
Π’ этом случаС сигнал отправляСтся Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ процСссу с Π΄Π°Π½Π½Ρ‹ΠΌ ID.
ID Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ процСсса nginx записываСтся ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Ρ„Π°ΠΉΠ»
nginx.pid Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅
/usr/local/nginx/logs ΠΈΠ»ΠΈ
/var/run.
НапримСр, Ссли ID Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ процСсса Ρ€Π°Π²Π΅Π½ 1628, для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ сигнала QUIT,
ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΠΏΠ»Π°Π²Π½ΠΎΠΌΡƒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ nginx, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:

kill -s QUIT 1628

Для просмотра списка всСх Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… процСссов nginx ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована
ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ps, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ps -ax | grep nginx

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ сигналов процСссам nginx
ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ nginx.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°

nginx состоит ΠΈΠ· ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°ΠΌΠΈ, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌΠΈ
Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅.
Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ дСлятся Π½Π° простыС ΠΈ Π±Π»ΠΎΡ‡Π½Ρ‹Π΅.
ΠŸΡ€ΠΎΡΡ‚Π°Ρ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° состоит ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ,
ΠΈ оканчиваСтся Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой (;).
Блочная Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° устроСна Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ простая Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°, Π½ΠΎ
вмСсто Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой послС ΠΈΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² слСдуСт Π½Π°Π±ΠΎΡ€ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ…
инструкций, ΠΏΠΎΠΌΠ΅Ρ‰Ρ‘Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок
({ ΠΈ }).
Если Ρƒ Π±Π»ΠΎΡ‡Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅
Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹, Ρ‚ΠΎ ΠΎΠ½Π° называСтся контСкстом (ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:
events,
http,
server
ΠΈ
location).

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹, ΠΏΠΎΠΌΠ΅Ρ‰Ρ‘Π½Π½Ρ‹Π΅ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ Π²Π½Π΅ любого контСкста,
ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ находящимися Π² контСкстС
main.
Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ events ΠΈ http
Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² контСкстС main, serverΒ β€”
Π² http, Π° locationΒ β€” Π²
server.

Π§Π°ΡΡ‚ΡŒ строки послС символа # считаСтся ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ.

Π Π°Π·Π΄Π°Ρ‡Π° статичСского содСрТимого

Одна ΠΈΠ· Π²Π°ΠΆΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ nginxΒ β€” Ρ€Π°Π·Π΄Π°Ρ‡Π°
Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ изобраТСния ΠΈΠ»ΠΈ статичСскиС HTML-страницы.
Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π² зависимости ΠΎΡ‚ запроса Ρ„Π°ΠΉΠ»Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚
Ρ€Π°Π·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²: /data/www,
ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит HTML-Ρ„Π°ΠΉΠ»Ρ‹, ΠΈ /data/images,
содСрТащий Ρ„Π°ΠΉΠ»Ρ‹ с изобраТСниями.
Для этого потрСбуСтся ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ
Π±Π»ΠΎΠΊ
server
Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ° http
с двумя Π±Π»ΠΎΠΊΠ°ΠΌΠΈ location.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, создайтС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /data/www ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅ Π² Π½Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»
index.html с Π»ΡŽΠ±Ρ‹ΠΌ тСкстовым содСрТаниСм, Π° Ρ‚Π°ΠΊΠΆΠ΅
создайтС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /data/images ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅ Π² Π½Π΅Π³ΠΎ нСсколько
Ρ„Π°ΠΉΠ»ΠΎΠ² с изобраТСниями.

Π”Π°Π»Π΅Π΅, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ».
ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΡƒΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько
ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π±Π»ΠΎΠΊΠ° server, большСй Ρ‡Π°ΡΡ‚ΡŒΡŽ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ….
Для нашСй Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ Π»ΡƒΡ‡ΡˆΠ΅ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС Ρ‚Π°ΠΊΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΈ
Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Π±Π»ΠΎΠΊ server:

http {
    server {
    }
}

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ нСсколько Π±Π»ΠΎΠΊΠΎΠ²
server,
Ρ€Π°Π·Π»ΠΈΡ‡Π°Π΅ΠΌΡ‹Ρ… ΠΏΠΎ ΠΏΠΎΡ€Ρ‚Π°ΠΌ, Π½Π°
ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ΠΈ
ΡΠ»ΡƒΡˆΠ°ΡŽΡ‚,
ΠΈ ΠΏΠΎ
ΠΈΠΌΠ΅Π½ΠΈ сСрвСра.
ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ², ΠΊΠ°ΠΊΠΎΠΉ server Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ запрос,
nginx сравниваСт URI, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ запроса, с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²
location, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ°
server.

Π’ Π±Π»ΠΎΠΊ server Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π±Π»ΠΎΠΊ location
ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²ΠΈΠ΄Π°:

location / {
    root /data/www;
}

Π­Ρ‚ΠΎΡ‚ Π±Π»ΠΎΠΊ location Π·Π°Π΄Π°Ρ‘Ρ‚ β€œ/”
Π² качСствС прСфикса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сравниваСтся с URI ΠΈΠ· запроса.
Для подходящих запросов Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ URI ΠΊ ΠΏΡƒΡ‚ΠΈ, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅
root,
Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС, ΠΊ /data/www, получаСтся
ΠΏΡƒΡ‚ΡŒ ΠΊ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ Π² локальной Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС.
Если Π΅ΡΡ‚ΡŒ совпадСниС с нСсколькими Π±Π»ΠΎΠΊΠ°ΠΌΠΈ location,
nginx Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Π±Π»ΠΎΠΊ с самым Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ прСфиксом.
Π’ Π±Π»ΠΎΠΊΠ΅ location Π²Ρ‹ΡˆΠ΅ ΡƒΠΊΠ°Π·Π°Π½ самый ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ прСфикс,
Π΄Π»ΠΈΠ½Ρ‹ ΠΎΠ΄ΠΈΠ½,
ΠΈ поэтому этот Π±Π»ΠΎΠΊ Π±ΡƒΠ΄Π΅Ρ‚ использован, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ совпадСния
Π½ΠΈ с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² location.

Π”Π°Π»Π΅Π΅, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π±Π»ΠΎΠΊ location:

location /images/ {
    root /data;
}

Он Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π°Π²Π°Ρ‚ΡŒ совпадСниС с запросами, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌΠΈΡΡ с
/images/
(location / для Π½ΠΈΡ… Ρ‚ΠΎΠΆΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ‚Π°ΠΌ прСфикс
ΠΊΠΎΡ€ΠΎΡ‡Π΅).

Π˜Ρ‚ΠΎΠ³ΠΎΠ²Π°Ρ конфигурация Π±Π»ΠΎΠΊΠ° server Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ
ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

server {
    location / {
        root /data/www;
    }

    location /images/ {
        root /data;
    }
}

Π­Ρ‚ΠΎ ΡƒΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π°Ρ конфигурация сСрвСра, ΡΠ»ΡƒΡˆΠ°ΡŽΡ‰Π΅Π³ΠΎ Π½Π° стандартном ΠΏΠΎΡ€Ρ‚Ρƒ 80
ΠΈ доступного Π½Π° локальном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΏΠΎ адрСсу
http://localhost/.
Π’ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° запросы, URI ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с /images/,
сСрвСр Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° /data/images.
НапримСр, Π½Π° запрос
http://localhost/images/example.png nginx ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚
Π² ΠΎΡ‚Π²Π΅Ρ‚ Ρ„Π°ΠΉΠ» /data/images/example.png.
Если ΠΆΠ΅ этот Ρ„Π°ΠΉΠ» Π½Π΅ сущСствуСт, nginx ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ ΠΎΡ‚Π²Π΅Ρ‚, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π°
ΠΎΡˆΠΈΠ±ΠΊΡƒ 404.
Запросы, URI ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ Π½Π° /images/, Π±ΡƒΠ΄ΡƒΡ‚
ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π½Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /data/www.
НапримСр, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ запроса
http://localhost/some/example.html Π² ΠΎΡ‚Π²Π΅Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚
ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ Ρ„Π°ΠΉΠ» /data/www/some/example.html.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ, запуститС nginx, Ссли ΠΎΠ½ Π΅Ρ‰Ρ‘ Π½Π΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½,
ΠΈΠ»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ сигнал reload Π³Π»Π°Π²Π½ΠΎΠΌΡƒ процСссу nginx,
Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ²:

nginx -s reload

Π’ случаС Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ ΠΊΠ°ΠΊ оТидалось, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ
ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ² access.log ΠΈ error.log
ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°
/usr/local/nginx/logs ΠΈΠ»ΠΈ
/var/log/nginx.

Настройка простого прокси-сСрвСра

Одним ΠΈΠ· частых ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ nginx являСтся использованиС Π΅Π³ΠΎ Π² качСствС
прокси-сСрвСра, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ сСрвСра, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ запросы, пСрСнаправляСт ΠΈΡ…
Π½Π° проксируСмыС сСрвСра, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ ΠΎΡ‚ Π½ΠΈΡ… ΠΈ отправляСт ΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ.

ΠœΡ‹ настроим Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ прокси-сСрвСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ запросы
ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ· локального ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ запросы Π½Π°
проксируСмый сСрвСр.
Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΠ±Π° сСрвСра Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ
экзСмпляра nginx.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, создайтС проксируСмый сСрвСр, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ Π±Π»ΠΎΠΊ
server Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» nginx со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ
содСрТимым:

server {
    listen 8080;
    root /data/up1;

    location / {
    }
}

Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ простой сСрвСр, ΡΠ»ΡƒΡˆΠ°ΡŽΡ‰ΠΈΠΉ Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ 8080
(Ρ€Π°Π½Π΅Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° listen Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π»Π°ΡΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ
использовался стандартный ΠΏΠΎΡ€Ρ‚ 80) ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ всС
запросы Π½Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /data/up1 Π² локальной Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ
систСмС.
Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ этот ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅ Π² Π½Π΅Π³ΠΎ Ρ„Π°ΠΉΠ» index.html.
ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° root ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π° Π² контСкст
server.
Вакая Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° root Π±ΡƒΠ΄Π΅Ρ‚ использована, ΠΊΠΎΠ³Π΄Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°
location, выбранная для выполнСния запроса, Π½Π΅ содСрТит
собствСнной Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ root.

Π”Π°Π»Π΅Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ сСрвСра ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°
ΠΈ Π²ΠΈΠ΄ΠΎΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΅Ρ‘, ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠ² Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ прокси-сСрвСра.
Π’ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π»ΠΎΠΊ location Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ
proxy_pass,
ΡƒΠΊΠ°Π·Π°Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», имя ΠΈ ΠΏΠΎΡ€Ρ‚ проксируСмого сСрвСра Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°
(Π² нашСм случаС это http://localhost:8080):

server {
    location / {
        proxy_pass http://localhost:8080;
    }

    location /images/ {
        root /data;
    }
}

ΠœΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π±Π»ΠΎΠΊ
location, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ запросы
с прСфиксом /images/ Π½Π° Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°
/data/images Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΠ» для запросов ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ
с Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ².
Π˜Π·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ location выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

location ~ \.(gif|jpg|png)$ {
    root /data/images;
}

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ являСтся рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π΄Π°ΡŽΡ‰Π΅Π΅ совпадСниС со всСми
URI, ΠΎΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈΡΡ Π½Π° .gif, .jpg ΠΈΠ»ΠΈ
.png.
РСгулярному Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ символ ~.
Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ запросы Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π½Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /data/images.

Когда nginx Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Π±Π»ΠΎΠΊ location,
ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ запрос, Ρ‚ΠΎ Π²Π½Π°Ρ‡Π°Π»Π΅ ΠΎΠ½ провСряСт
Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ location,
Π·Π°Π΄Π°ΡŽΡ‰ΠΈΠ΅ прСфиксы, запоминая location с самым
Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ подходящим прСфиксом, Π° Π·Π°Ρ‚Π΅ΠΌ провСряСт рСгулярныС выраТСния.
Если Π΅ΡΡ‚ΡŒ совпадСниС с рСгулярным Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, nginx Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ
location, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС бСрётся Π·Π°ΠΏΠΎΠΌΠ½Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π½Π΅Π΅
location.

Π˜Ρ‚ΠΎΠ³ΠΎΠ²Π°Ρ конфигурация прокси-сСрвСра выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

server {
    location / {
        proxy_pass http://localhost:8080/;
    }

    location ~ \.(gif|jpg|png)$ {
        root /data/images;
    }
}

Π­Ρ‚ΠΎΡ‚ сСрвСр Π±ΡƒΠ΄Π΅Ρ‚ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ запросы, ΠΎΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π°
.gif, .jpg ΠΈΠ»ΠΈ .png,
ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΈΡ… Π½Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /data/images (Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ URI ΠΊ
ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ root) ΠΈ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅
запросы Π½Π° проксируСмый сСрвСр, сконфигурированный Π²Ρ‹ΡˆΠ΅.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ, ΠΎΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ сигнал reload
nginx’у, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΡ‹Π²Π°Π»ΠΎΡΡŒ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ….

БущСствуСт мноТСство
Π΄Ρ€ΡƒΠ³ΠΈΡ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² для дальнСйшСй настройки прокси-соСдинСния.

Настройка проксирования FastCGI

nginx ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для пСрСнаправлСния запросов Π½Π° FastCGI-сСрвСры.
На Π½ΠΈΡ… ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ прилоТСния, созданныС с использованиСм
Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠΈ языков программирования, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, PHP.

Базовая конфигурация nginx для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с проксируСмым FastCGI-сСрвСром
Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя использованиС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹
fastcgi_pass
вмСсто Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ proxy_pass,
ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² fastcgi_param
для настройки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… FastCGI-сСрвСру.
ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ FastCGI-сСрвСр доступСн ΠΏΠΎ адрСсу
localhost:9000.
Взяв Π·Π° основу ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ прокси-сСрвСра ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°,
Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ proxy_pass Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ
fastcgi_pass ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π½Π°
localhost:9000.
Π’ PHP ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ SCRIPT_FILENAME ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для
опрСдСлСния ΠΈΠΌΠ΅Π½ΠΈ скрипта, Π° Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ QUERY_STRING
ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ запроса.
ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ конфигурация:

server {
    location / {
        fastcgi_pass  localhost:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param QUERY_STRING    $query_string;
    }

    location ~ \.(gif|jpg|png)$ {
        root /data/images;
    }
}

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ настроСн сСрвСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ
всС запросы, ΠΊΡ€ΠΎΠΌΠ΅ запросов статичСских ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π½Π° проксируСмый
сСрвСр, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎ адрСсу localhost:9000,
ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ FastCGI.

Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ — Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Π’Π΅Π±-сайт состоит ΠΈΠ· мноТСства Ρ„Π°ΠΉΠ»ΠΎΠ²: тСкстового ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, ΠΊΠΎΠ΄Π°, стилСй, ΠΌΠ΅Π΄ΠΈΠ°-ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Когда Π²Ρ‹ создаётС Π²Π΅Π±-сайт, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ эти Ρ„Π°ΠΉΠ»Ρ‹ Π² Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ структуру Π½Π° вашСм локальном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ, ΠΈ вСсь ваш ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ выглядит ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹, Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΈΡ… Π½Π° сСрвСр. Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅Β Π Π°Π±ΠΎΡ‚Π°Β Ρ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈΒ ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вопросы, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Π°ΠΌ слСдуСт Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ структуру для своСго Π²Π΅Π±-сайта.

Когда Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π° Π²Π΅Π±-сайтС локально Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ всС связанныС Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅, которая ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ структуру ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²Π΅Π±-сайта Π½Π° сСрвСрС. Π­Ρ‚Π° ΠΏΠ°ΠΏΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ, Π½ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π΅Ρ‘ Ρ‚ΡƒΠ΄Π°, Π³Π΄Π΅ Π²Ρ‹ смоТСтС Π»Π΅Π³ΠΊΠΎ Π΅Ρ‘ Π½Π°ΠΉΡ‚ΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π½Π° ваш Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ стол, Π² домашнюю ΠΏΠ°ΠΏΠΊΡƒ ΠΈΠ»ΠΈ Π² ΠΊΠΎΡ€Π΅Π½ΡŒ вашСго Тёсткого диска.

  1. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ мСсто для хранСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π²Π΅Π±-сайта. Π—Π΄Π΅ΡΡŒ, создайтС Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ web-projects (ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΉ). Π­Ρ‚ΠΎ Ρ‚ΠΎ мСсто, Π³Π΄Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ всС ваши ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ сайтов.
  2. Π’Π½ΡƒΡ‚Ρ€ΠΈ этой ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ, создайтС Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ для хранСния вашСго ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π²Π΅Π±-сайта. НазовитС Π΅Ρ‘ test-site (ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ творчСски).

Π’Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅, ΠΌΡ‹ просим вас Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ°ΠΏΠΊΠΈ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π² Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ². Π­Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ:

  1. МногиС ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹, Π² частности Π²Π΅Π±-сСрвСры, Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ рСгистру. Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли Π²Ρ‹ ΠΏΠΎΠ»ΠΎΠΆΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° свой Π²Π΅Π±-сайт Π² test-site/MyImage.jpg, Π° Π·Π°Ρ‚Π΅ΠΌ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ test-site/myimage.jpg, это ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.
  2. Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹, Π²Π΅Π±-сСрвСры ΠΈ языки программирования Π½Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. НапримСр, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π² ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ систСмы ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π½Π΅ΡΡ‚ΠΈΡΡŒ ΠΊ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° ΠΊΠ°ΠΊ ΠΊ Π΄Π²ΡƒΠΌ ΠΈΠΌΠ΅Π½Π°ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ². НСкоторыС сСрвСры Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π² вашСм ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° Π½Π° «%20» (ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ для ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π² URI), Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ всС ваши ссылки Π±ΡƒΠ΄ΡƒΡ‚ сломаны. Π›ΡƒΡ‡ΡˆΠ΅ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ слова дСфисами, Ρ‡Π΅ΠΌΒ Π½ΠΈΠΆΠ½ΠΈΠΌΠΈ подчёркиваниями: my-file.html Π»ΡƒΡ‡ΡˆΠ΅ Ρ‡Π΅ΠΌΒ my_file.html.

Говоря простым языком,Β Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ дСфис для ΠΈΠΌΡ‘Π½ Ρ„Π°ΠΉΠ»ΠΎΠ². Поисковая систСма Google рассматриваСт дСфис ΠΊΠ°ΠΊ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ слов, Π½ΠΎ Π½Π΅ относится ΠΊ ΠΏΠΎΠ΄Ρ‡Ρ‘Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΡŽ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. По этим ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ, Π»ΡƒΡ‡ΡˆΠ΅ всСго приобрСсти ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΡƒ ΠΏΠΈΡΠ°Ρ‚ΡŒ названия Π²Π°ΡˆΠΈΡ… ΠΏΠ°ΠΏΠΎΠΊ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС бСз ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ², раздСляя слова дСфисами, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΏΠΎΠΊΠ° Π²Ρ‹ Π½Π΅ ΠΏΠΎΠΉΠΌΡ‘Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅. Π’Π°ΠΊΒ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½Ρ‘Ρ‚Π΅ΡΡŒ с мСньшим количСством ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Π”Π°Π»Π΅Π΅, Π΄Π°Π²Π°ΠΉΡ‚Π΅ взглянСм Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊΡƒΡŽ структуру Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ наш тСстовый сайт. НаиболСС распространённыС Π²Π΅Ρ‰ΠΈ, ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² любом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ сайта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ создаём: индСксный Ρ„Π°ΠΉΠ» HTML ΠΈΒ ΠΏΠ°ΠΏΠΊΠΈ, содСрТащиС изобраТСния, Ρ„Π°ΠΉΠ»Ρ‹ стилСй ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ скриптов. Π”Π°Π²Π°ΠΉΡ‚Π΅ создадим ΠΈΡ… сСйчас:

  1. index.html: Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ домашнСй страницы, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ тСкст ΠΈ изобраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ люди видят, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π½Π° ваш сайт. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ваш тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, создайтС Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ index.html ΠΈ сохранитС Π΅Π³ΠΎ прямо Π²Π½ΡƒΡ‚Ρ€ΠΈ вашСй ΠΏΠ°ΠΏΠΊΠΈ test-site.
  2. Папка images: Π­Ρ‚Π° ΠΏΠ°ΠΏΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΒ Π²ΡΠ΅ изобраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π½Π° вашСм сайтС. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ images Π²Π½ΡƒΡ‚Ρ€ΠΈ вашСй ΠΏΠ°ΠΏΠΊΠΈ test-site.
  3. Папка styles: Π­Ρ‚Π° ΠΏΠ°ΠΏΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΒ CSS ΠΊΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для стилизации вашСго ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, настройка тСкста ΠΈ Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°). Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ styles Π²Π½ΡƒΡ‚Ρ€ΠΈ вашСй ΠΏΠ°ΠΏΠΊΠΈ test-site.
  4. Папка scripts: Π­Ρ‚Π° ΠΏΠ°ΠΏΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ вСсь JavaScript ΠΊΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для добавлСния ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π° вашСм сайтС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ΅). Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ scripts Π²Π½ΡƒΡ‚Ρ€ΠΈ вашСй ΠΏΠ°ΠΏΠΊΠΈ test-site.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: На ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Windows Ρƒ вас ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠΌΡ‘Π½ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρƒ Windows Π΅ΡΡ‚ΡŒΒ ΠΎΠΏΡ†ΠΈΡΒ Π‘ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ для извСстных Ρ‚ΠΈΠΏΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Π°Ρ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Ρ‘, пСрСйдя Π² ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊ, Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Бвойства ΠΏΠ°ΠΏΠΊΠΈ… ΠΈ ΡΠ½ΡΡ‚ΡŒ Ρ„Π»Π°ΠΆΠΎΠΊ Π‘ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ для зарСгистрированных Ρ‚ΠΈΠΏΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ², Π·Π°Ρ‚Π΅ΠΌ Ρ‰Ρ‘Π»ΠΊΠ½ΡƒΡ‚ΡŒ OK. Для получСния Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Π²Π°ΡˆΡƒ Π²Π΅Ρ€ΡΠΈΡŽ Windows, Π²Ρ‹ моТСтС произвСсти поиск Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ„Π°ΠΉΠ»Ρ‹ ΠΎΠ±Ρ‰Π°Π»ΠΈΡΡŒ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΏΡƒΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ ΠΊ Π΄Ρ€ΡƒΠ³Ρƒ — ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» Π·Π½Π°Π΅Ρ‚, Π³Π΄Π΅ находится Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ это, ΠΌΡ‹ вставим Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ HTML Π² наш Ρ„Π°ΠΉΠ» index.html ΠΈ Π½Π°ΡƒΡ‡ΠΈΠΌ Π΅Π³ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ «ΠšΠ°ΠΊΠΈΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ваш Π²Π΅Π±-сайт?»

  1. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Ρ€Π°Π½Π΅Π΅, Π² ΠΏΠ°ΠΏΠΊΡƒ images.
  2. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ваш Ρ„Π°ΠΉΠ» index.html ΠΈ Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π² Ρ„Π°ΠΉΠ» ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Ρ‚Π°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅. НС Π±Π΅ΡΠΏΠΎΠΊΠΎΠΉΡ‚Π΅ΡΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ всС это Π·Π½Π°Ρ‡ΠΈΡ‚Β — ΠΏΠΎΠ·ΠΆΠ΅Β Π² этом руководствС ΠΌΡ‹ рассмотрим структуры Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.
    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Моя тСстовая страница</title>
      </head>
      <body>
        <img src="" alt="ΠœΠΎΡ‘ тСстовоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅">
      </body>
    </html> 
  3. Π‘Ρ‚Ρ€ΠΎΠΊΠ° <img src="" alt="ΠœΠΎΡ‘ тСстовоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅"> — это HTML ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вставляСт ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° страницу. ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ HTML, Π³Π΄Π΅ находится ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ находится Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°ΠΏΠΊΠΈ images, которая находится Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Ρ‡Ρ‚ΠΎ ΠΈ index.html. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒΡΡ Π²Π½ΠΈΠ· ΠΏΠΎ нашСй Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ структурС ΠΎΡ‚Β index.html Π΄ΠΎ нашСго изобраТСния, ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊΒ images/your-image-filename. НапримСр нашС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π½Π°Π·Π²Π°Π½Π½ΠΎΠ΅ firefox-icon.png, ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ: images/firefox-icon.png.
  4. Π’ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Π² ваш HTML ΠΊΠΎΠ΄ ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈΒ src="".
  5. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ваш HTML Ρ„Π°ΠΉΠ», Π° Π·Π°Ρ‚Π΅ΠΌ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π² вашСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ (Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Ρ‰Π΅Π»Ρ‡ΠΎΠΊ ΠΏΠΎ Ρ„Π°ΠΉΠ»Ρƒ). Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π²Π°ΡˆΡƒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Π±-страницу, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΡƒΡŽ вашС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅!

НСкоторыС ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΎ путях ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ:

  • Для ссылки Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ„Π°ΠΉΠ» Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ HTML Ρ„Π°ΠΉΠ», просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ имя Ρ„Π°ΠΉΠ»Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, my-image.jpg.
  • Для ссылки Π½Π° Ρ„Π°ΠΉΠ» Π² ΠΏΠΎΠ΄Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ имя Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡƒΡ‚ΠΈ, плюс ΠΊΠΎΡΡƒΡŽ Ρ‡Π΅Ρ€Ρ‚Ρƒ (forwardslash, слСш), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: subdirectory/my-image.jpg.
  • Для ссылки Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ„Π°ΠΉΠ» Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π²Ρ‹ΡˆΠ΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ HTML Ρ„Π°ΠΉΠ»Π°, Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π΄Π²Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ. НапримСр, Ссли index.html находится Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠΈ test-site, Π° my-image.png — Π²Π½ΡƒΡ‚Ρ€ΠΈ test-site, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ my-image.png ΠΈΠ· index.html, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ../my-image.png.
  • Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π²Π°ΠΌ нравится, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ../subdirectory/another-subdirectory/my-image.png.

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ это всС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Ѐайловая систСма Windows стрСмится ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ слСш (backslash), Π° Π½Π΅ ΠΊΠΎΡΡƒΡŽ Ρ‡Π΅Ρ€Ρ‚Ρƒ (forwardslash), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ C:\windows. Π­Ρ‚ΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния, Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ Π²Π΅Π±-сайт Π½Π° Windows, Π²Ρ‹ всС Ρ€Π°Π²Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ слСши Π² вашСм ΠΊΠΎΠ΄Π΅.

К настоящСму ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ структура вашСй ΠΏΠ°ΠΏΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

Β 

Β 

ΠœΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ»Π°Ρ… PNG

Portable Network Graphics (PNG) — это Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ² растровой Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ пСрСносимый, ΡŽΡ€ΠΈΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΉ, Ρ…ΠΎΡ€ΠΎΡˆΠΎ сТатый, Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ стандарт для Ρ„Π°ΠΉΠ»ΠΎΠ² растровых ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΡŒ.

PNG всСгда начинаСтся с 8-Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠΉ подписи: 137 80 78 71 13 10 26 10 (дСсятичныС значСния). ΠžΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Π° состоит ΠΈΠ· сСрии Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ², начиная с Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° IHDR ΠΈ заканчивая Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ IEND.

1. Π§Π°Π½ΠΊΠΈΒΆ

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π»ΠΎΠΊ состоит ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… частСй:

Π”Π»ΠΈΠ½Π° 4 Π±Π°ΠΉΡ‚Π° Π¦Π΅Π»ΠΎΠ΅ число Π±Π΅Π· Π·Π½Π°ΠΊΠ°, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ количСство Π±Π°ΠΉΡ‚ΠΎΠ² Π² ΠΏΠΎΠ»Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠ°.31-1 Π±Π°ΠΉΡ‚.
Π’ΠΈΠΏ Π±Π»ΠΎΠΊΠ° 4 Π±Π°ΠΉΡ‚Π° ΠšΠΎΠ΄Ρ‹ Ρ‚ΠΈΠΏΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· прописных ΠΈ строчных Π±ΡƒΠΊΠ² ASCII, ΠΈ ΠΎΠ½ΠΈ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ рСгистру.
+ РСгистр ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, являСтся Π»ΠΈ Π±Π»ΠΎΠΊ критичСским ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Если пСрвая Π±ΡƒΠΊΠ²Π° Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ рСгистрС, Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅Π½; Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π±Π»ΠΎΠΊ являСтся Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ (Π±ΠΎΠ»Π΅Π΅ подробная информация ΡƒΠΊΠ°Π·Π°Π½Π° Π½ΠΈΠΆΠ΅).
+ РСгистр Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, являСтся Π»ΠΈ Π±Π»ΠΎΠΊ «ΠΎΠ±Ρ‰Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ‹ΠΌ» (Π»ΠΈΠ±ΠΎ Π² спСцификации, Π»ΠΈΠ±ΠΎ Π² рССстрС общСдоступных Π±Π»ΠΎΠΊΠΎΠ² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ назначСния) ΠΈΠ»ΠΈ «Ρ‡Π°ΡΡ‚Π½Ρ‹ΠΌ» (Π½Π΅ стандартизованным).ΠŸΡ€ΠΎΠΏΠΈΡΠ½Ρ‹Π΅ Π±ΡƒΠΊΠ²Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ общСдоступными, Π° строчныС — частными.
+ Π’Ρ€Π΅Ρ‚ΡŒΡ Π±ΡƒΠΊΠ²Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ прописной, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ спСцификации PNG. Он Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ для Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ.
+ РСгистр Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Π³ΠΎ Π½Π΅ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°ΡŽΡ‚.
Π”Π°Π½Π½Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° Π”Π»ΠΈΠ½Π° Π±Π°ΠΉΡ‚ Π‘Π°ΠΉΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡƒ Π±Π»ΠΎΠΊΠ°, Ссли Π΅ΡΡ‚ΡŒ. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹.
CRC 4 Π±Π°ΠΉΡ‚Π° CRC (Cyclic Redundancy Check), вычислСнная для ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Π±Π°ΠΉΡ‚ΠΎΠ² Π² Π±Π»ΠΎΠΊΠ΅, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠΎΠ΄ Ρ‚ΠΈΠΏΠ° Π±Π»ΠΎΠΊΠ° ΠΈ поля Π΄Π°Π½Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠ°, Π½ΠΎ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΠ»Π΅ Π΄Π»ΠΈΠ½Ρ‹.CRC присутствуСт всСгда, Π΄Π°ΠΆΠ΅ для Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ², Π½Π΅ содСрТащих Π΄Π°Π½Π½Ρ‹Ρ….

Рис.1. ΠœΠ°ΠΊΠ΅Ρ‚ Ρ‡Π°Π½ΠΊΠ°.

Π§Π°Π½ΠΊΠΈ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ сСбя критичСскими ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ . Π‘Π»ΠΎΠΊΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ отобраТСния содСрТимого Ρ„Π°ΠΉΠ»Π°, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ критичСскими Π±Π»ΠΎΠΊΠ°ΠΌΠΈ. Если Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ критичСский Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ Π½Π΅ распознаСт, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅.

Имя НСсколько ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ для Π·Π°ΠΊΠ°Π·Π° Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅
IHDR НСт Π”ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΡˆΠΈΡ€ΠΈΠ½Π°, высота ΠΈ битовая Π³Π»ΡƒΠ±ΠΈΠ½Π° изобраТСния
PLTE НСт Π”ΠΎ IDAT ΠΏΠ°Π»ΠΈΡ‚Ρ€Π°; список Ρ†Π²Π΅Ρ‚ΠΎΠ².
IDAT Π•ΡΡ‚ΡŒ НСсколько IDAT Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ — фактичСскиС Π΄Π°Π½Π½Ρ‹Π΅ изобраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими Π±Π»ΠΎΠΊΠ°ΠΌΠΈ IDAT. Π’Π°ΠΊΠΎΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π°, Π½ΠΎ позволяСт Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ PNG Π² ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅.
IEND НСт Π”ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ послСдним ΠΎΠ½ просто ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ ΠΊΠΎΠ½Π΅Ρ† изобраТСния. ПолС Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π°Π½ΠΊΠ° пусто.

Π€ΠΈΠ³.2. НСкоторыС стандартныС критичСскиС Π±Π»ΠΎΠΊΠΈ.

Π§Π°Π½ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ строго Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ для Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠ³ΠΎ отобраТСния содСрТимого Ρ„Π°ΠΉΠ»Π°, извСстны ΠΊΠ°ΠΊ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ . Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя значСния Π³Π°ΠΌΠΌΡ‹, Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° ΠΈ тСкстовыС ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅, ΠΈ Ρ‚. Π”. … Если Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ.

Имя НСсколько ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ для Π·Π°ΠΊΠ°Π·Π° Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅
cHRM НСт Π”ΠΎ PLTE ΠΈ IDAT — ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ цвСтности основных Ρ†Π²Π΅Ρ‚ΠΎΠ² дисплСя ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ Π±Π΅Π»ΠΎΠ³ΠΎ.
Π“ΠΠœΠ НСт Π”ΠΎ PLTE ΠΈ IDAT Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π³Π°ΠΌΠΌΡ‹.
iCCP НСт Π”ΠΎ PLTE ΠΈ IDAT Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ ICC.
Π‘Π‘Π˜Π’ НСт Π”ΠΎ PLTE ΠΈ IDAT Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ΠΎΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ исходных Π΄Π°Π½Π½Ρ‹Ρ….
sRGB НСт Π”ΠΎ PLTE ΠΈ IDAT стандартноС Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠ΅ пространство sRGB.
Π±ΠšΠ“Π” НСт ПослС PLTE; Π΄ΠΎ IDAT Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Он ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования, ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ Π²Ρ‹Π±ΠΎΡ€Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹Ρ… срСдствах просмотра ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.
hIST НСт ПослС PLTE; Π΄ΠΎ IDAT гистограмма ΠΈΠ»ΠΈ ΠΎΠ±Ρ‰Π΅Π΅ количСство ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ.
тРНБ НСт ПослС PLTE; Π΄ΠΎ IDAT информация ΠΎ прозрачности.Для проиндСксированных ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΎΠ½ Ρ…Ρ€Π°Π½ΠΈΡ‚ значСния Π°Π»ΡŒΡ„Π°-ΠΊΠ°Π½Π°Π»Π° для ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… записСй ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹. Для ΠΏΠΎΠ»Π½ΠΎΡ†Π²Π΅Ρ‚Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² градациях сСрого ΠΎΠ½ Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ пиксСля, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ слСдуСт Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠ΅.
pHYs НСт Π”ΠΎ IDAT ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ пиксСля ΠΈ / ΠΈΠ»ΠΈ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ сторон изобраТСния.
sPLT Π•ΡΡ‚ΡŒ Π”ΠΎ IDAT ΠΏΠ°Π»ΠΈΡ‚Ρ€Π° для использования, Ссли ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Ρ†Π²Π΅Ρ‚ΠΎΠ² нСдоступСн.
Π’Π Π•ΠœΠ― НСт НСт врСмя послСднСго измСнСния изобраТСния.
iTXt Π•ΡΡ‚ΡŒ НСт ВСкст UTF-8, сТатый ΠΈΠ»ΠΈ нСсТатый, с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ языковым Ρ‚Π΅Π³ΠΎΠΌ.
Π’Π•ΠšΠ‘Π’ Π•ΡΡ‚ΡŒ НСт тСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСн Π² ISO / IEC 8859-1.
zTXt Π•ΡΡ‚ΡŒ НСт сТатый тСкст с Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ ограничСниями, Ρ‡Ρ‚ΠΎ ΠΈ tEXt.

Рис.3. НСкоторыС стандартныС Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ.

2. Π‘Π»ΠΎΠΊΠΈ тСкстовой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ — ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ PNGΒΆ

Π‘Π»ΠΎΠΊΠΈ iTXt, tEXt ΠΈ zTXt (Π±Π»ΠΎΠΊΠΈ тСкста) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ тСкстовой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, связанной с ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π­Ρ‚ΠΎ мСста, Π³Π΄Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡ‚ΠΈ всС ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Π° PNG.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· тСкстовых Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² содСрТит Π² качСствС своСго ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ поля ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, прСдставлСнной тСкстовой строкой. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΌ, Π³Π΄Π΅ это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ:

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова ΠžΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ
НазваниС ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ (однострочноС) Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ подпись ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ
Автор Имя создатСля изобраТСния
ОписаниС ОписаниС изобраТСния (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π»ΠΈΠ½Π½ΠΎΠ΅)
АвторскоС ΠΏΡ€Π°Π²ΠΎ Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ± авторских ΠΏΡ€Π°Π²Π°Ρ…
ВрСмя создания ВрСмя создания ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ изобраТСния
ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС для создания ΠΎΠ±Ρ€Π°Π·Π°
ЗаявлСниС ΠΎΠ± ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΈ отвСтствСнности ЗаявлСниС ΠΎΠ± ΠΎΡ‚ΠΊΠ°Π·Π΅ ΠΎΡ‚ отвСтствСнности
ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π΅ содСрТимого
Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ Устройство для создания ΠΎΠ±Ρ€Π°Π·Π°
ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠŸΡ€ΠΎΡ‡ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ; ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· коммСнтария GIF

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½Ρ‹ для Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ.ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 80 символов. ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΎΠ±Ρ‰ΠΈΠΉ интСрСс, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ зарСгистрированы Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² спСцификации PNG. Богласно спСцификации XMP, ΠΏΠ°ΠΊΠ΅Ρ‚ XMP встраиваСтся Π² графичСский Ρ„Π°ΠΉΠ» PNG ΠΏΡƒΡ‚Π΅ΠΌ добавлСния Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° Ρ‚ΠΈΠΏΠ° iTXt с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом XML: com.adobe.xmp. НСт стандарта для Π΄Π°Π½Π½Ρ‹Ρ… Exif, IPTC. Π’ Exiv2, ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Exif, IPTC, ΠΎΠ½ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² тСкстовых Π±Π»ΠΎΠΊΠ°Ρ… zTXt ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ASCII.

2.1 Π’Π•ΠšΠ‘Π’ ВСкстовыС Π΄Π°Π½Π½Ρ‹Π΅

Π’ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅:

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово НулСвой сСпаратор ВСкст
1-79 Π±Π°ΠΉΡ‚ 1 Π±Π°ΠΉΡ‚ n Π±Π°ΠΉΡ‚ΠΎΠ²

ВСкст интСрпрСтируСтся Π² соотвСтствии с Π½Π°Π±ΠΎΡ€ΠΎΠΌ символов ISO / IEC 8859-1 (Latin-1).ВСкстовая строка ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ любой символ Latin-1. НовыС строки Π² тСкстовой строкС Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ прСдставлСны ΠΎΠ΄Π½ΠΈΠΌ символом ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки (дСсятичноС число 10).

2.2 zTXt Π‘ΠΆΠ°Ρ‚Ρ‹Π΅ тСкстовыС Π΄Π°Π½Π½Ρ‹Π΅ΒΆ

Π’ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅:

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово НулСвой сСпаратор ΠœΠ΅Ρ‚ΠΎΠ΄ сТатия Π‘ΠΆΠ°Ρ‚Ρ‹ΠΉ тСкст
1-79 Π±Π°ΠΉΡ‚ 1 Π±Π°ΠΉΡ‚ 1 Π±Π°ΠΉΡ‚ n Π±Π°ΠΉΡ‚ΠΎΠ²

Π‘Π»ΠΎΠΊ zTXt содСрТит тСкстовыС Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠ°ΠΊ ΠΈ tEXt; ΠΎΠ΄Π½Π°ΠΊΠΎ zTXt ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ сТатиС.Π‘Π»ΠΎΠΊΠΈ zTXt ΠΈ tEXt сСмантичСски эквивалСнтны, Π½ΠΎ zTXt рСкомСндуСтся для хранСния Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π±Π»ΠΎΠΊΠΎΠ² тСкста. ЕдинствСнноС допустимоС Π² настоящСС врСмя Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для Compression method — 0 (сТатиС ΡΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ / Π½Π°ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ)

2.3 ВСкстовыС Π΄Π°Π½Π½Ρ‹Π΅ iTXt InternationalΒΆ

Π’ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅:

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово НулСвой сСпаратор Π€Π»Π°Π³ сТатия ΠœΠ΅Ρ‚ΠΎΠ΄ сТатия Π―Π·Ρ‹ΠΊΠΎΠ²ΠΎΠΉ Ρ‚Π΅Π³ НулСвой сСпаратор ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½ΠΎ НулСвой сСпаратор ВСкст
1-79 Π±Π°ΠΉΡ‚ 1 Π±Π°ΠΉΡ‚ 1 Π±Π°ΠΉΡ‚ 1 Π±Π°ΠΉΡ‚ 0 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π±Π°ΠΉΡ‚ΠΎΠ² 1 Π±Π°ΠΉΡ‚ 0 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π±Π°ΠΉΡ‚ΠΎΠ² 1 Π±Π°ΠΉΡ‚ 0 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π±Π°ΠΉΡ‚ΠΎΠ²

Π­Ρ‚ΠΎΡ‚ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ сСмантичСски эквивалСнтСн Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌ tEXt ΠΈ zTXt, Π½ΠΎ тСкстовыС Π΄Π°Π½Π½Ρ‹Π΅ находятся Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ UTF-8 Π½Π°Π±ΠΎΡ€Π° символов Unicode вмСсто Latin-1

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:
Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вСрсия exiv2 (.exe), поставляСмый с v0.25, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ структуру Ρ„Π°ΠΉΠ»Π°. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -pa ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ всС ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅, -pS ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ структуру Ρ„Π°ΠΉΠ»Π°, -pX ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ XMP / xml.

841 rmills @ rmillsmbp: ~ / gnu / exiv2 / trunk / website $ exiv2 -pa ~ / png
Exif.Image.ImageWidth SLong 1320
...
Exif.Thumbnail.JPEGInterchangeFormatLength Long 1 4376
Iptc.Application2.ObjectName String 4 ovni
...
Iptc.Application2.RecordVersion Short 1 4
Xmp.dc.title LangAlt 1 lang = "x-default" это Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
842 rmills @ rmillsmbp: ~ / gnu / exiv2 / trunk / website $ exiv2 -pS ~ / png
БВРУКВУРА PNG-ЀАЙЛА: / Users / rmills / png
 адрСс | индСкс | chunk_type | Π΄Π»ΠΈΠ½Π° | Π΄Π°Π½Π½Ρ‹Π΅
       8 | 0 | IHDR | 13 |
      33 | 1 | zTXt | 8769 | НСобработанный Ρ‚ΠΈΠΏ профиля exif..x ... [r ..
    8814 | 2 | zTXt | 270 | Π’ΠΈΠΏ исходного профиля iptc..x. = QKn.
    9096 | 3 | iTXt | 2524 | XML: com.adobe.xmp..... 


  
    
      
        
           это Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 
        
      
    
  


844 rmills @ rmillsmbp: ~ / gnu / exiv2 / trunk / website $ 

Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Π° состоит ΠΈΠ· Π±Π»ΠΎΠΊΠΎΠ² IDAT, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат само ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (пиксСли).Π§Ρ‚ΠΎ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ интСрСсно, Π±Π»ΠΎΠΊΠΈ zTXt содСрТат Π΄Π°Π½Π½Ρ‹Π΅ Exif ΠΈ Iptc. Π§Π°Π½ΠΊ iTXt содСрТит XMP / xml. Π‘Π»ΠΎΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Exif ΠΈ Iptc хранятся с использованиСм спСцификации ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° TIFF. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ TIFF ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΈ Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ структуру Π΄Π°Π½Π½Ρ‹Ρ… Exif, записанных Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ TIFF. http://dev.exiv2.org/projects/exiv2/wiki/The_Metadata_in_TIFF_files

Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ΒΆ

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ PNG. ΠŸΠΎΡ€Ρ‚Π°Ρ‚ΠΈΠ²Π½Π°Ρ сСтСвая Π³Ρ€Π°Ρ„ΠΈΠΊΠ° (PNG) имССт… | Автор Colt McAnlis

ΠŸΠΎΡ€Ρ‚Π°Ρ‚ΠΈΠ²Π½Π°Ρ сСтСвая Π³Ρ€Π°Ρ„ΠΈΠΊΠ° (PNG) стала основным ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠΌ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π·Π° послСдниС нСсколько дСсятилСтий.Он распространился ΠΏΠΎΠ²ΡΡŽΠ΄Ρƒ, ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ³Ρ€ Π΄ΠΎ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ΄ Android, Π° это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ распространСниС, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ .

И, ΠΊΠ°ΠΊ я ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ» Ρ€Π°Π½Π΅Π΅, PNG обСспСчиваСт Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ изобраТСния с высоким Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ, Π½ΠΎ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ возмоТностСй для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ сТатия Π΄Π°Π½Π½Ρ‹Ρ…. Но ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ , ΠΊΠ°ΠΊ ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ PNG, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ сначала ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ , ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ .

PNG: сТатиС осущСствляСтся Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΡŒ; Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ сТатый Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ исходноС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. ВыполняСтся Π² Π΄Π²Π° этапа: ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (Ρ‚Π°ΠΊΠΆΠ΅ извСстноС ΠΊΠ°ΠΊ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ) ΠΈ Π·Π°Ρ‚Π΅ΠΌ сТатиС.

Π”Π΅Π»ΡŒΡ‚Π°-ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ — ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых ΠΌΠΎΡ‰Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² сТатия чисСл. Основная идСя состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ любоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ значСния. Π˜Ρ‚Π°ΠΊ,

[2,3,4,5,6,7,8] ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ [2,1,1,1,1,1,1], Π³Π΄Π΅

[2, 3–2 = 1, 4 –3 = 1, 5–4 = 1, 6–5 = 1, 7–6 = 1, 8–7 = 1]

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ это Ρ‚Π°ΠΊ ΠΌΠΎΡ‰Π½ΠΎ, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ссли Π΄Π°Π½Π½Ρ‹Π΅ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ ΠΊΠΎΡ€Ρ€Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ (Ρ‚. Π•. value ΠΈΠΌΠ΅Π΅Ρ‚ нСбольшоС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ значСния), Ρ‚ΠΎΠ³Π΄Π° Π²Ρ‹ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚Π΅ значСния вашСго Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎ мноТСство ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ Π½ΠΈΠ·ΠΊΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΠΎΠ»Π΅Π΅ сТимаСмы.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ PNG ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Π΅Π»ΡŒΡ‚Π°-ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ Β«Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠ΅ΠΉΒ». По сути, для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки сканирования пиксСлСй Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ пиксСль кодируСтся Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ ΠΊ пиксСлю слСва, пиксСлю Π²Π²Π΅Ρ€Ρ…Ρƒ ΠΈ пиксСлю Π²Π²Π΅Ρ€Ρ…Ρƒ слСва.

НапримСр, Ссли ΠΌΡ‹ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Π΄Π°Π½Π½Ρ‹ΠΉ пиксСль, ΡƒΠΊΠ°Π·Π°Π² Π΅Π³ΠΎ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ срСдним Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ A ΠΈ B (X — ((A + B) / 2), Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ:

Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Π±Π΅Ρ€Π΅Ρ‚ ABC ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ это для прСдсказываСт, ΠΊΠ°ΠΊΠΎΠ²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ x, . Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ замСняСм x, прСдставляСт собой Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ прСдсказаниСм ΠΈ фактичСским Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ каТдая строка ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ, поэтому PNG позволяСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ 1 ΠΈΠ· 5 Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки:

  • Π‘Π΅Π· Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ
  • Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ X ΠΈ A
  • Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ X ΠΈ B
  • Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ X ΠΈ (A + B) / 2 (ΠΎΠ½ ΠΆΠ΅ срСдний)
  • ΠŸΡ€Π΅Π΄ΠΈΠΊΡ‚ΠΎΡ€ ΠŸΠ°ΡΡ‚Π° (линСйная функция ΠΎΡ‚ A, B, C)

ЦСль состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ каТдая строка ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ , для самого сСбя, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ произвСсти наимСньшСС количСство ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… символов.Π’ΠΎΡ‚ наш исходный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ примСнСния Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΊ Π΄Π²ΡƒΠΌ строкам Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ пиксСлСй. Π—Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹Π΅ пиксСли Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹ синим Ρ†Π²Π΅Ρ‚ΠΎΠΌ.

И Π²Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ эти Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ сдСланы, Π½Π° ΠΊΠ°Π½Π°Π», Π½Π΅ Π½Π° пиксСль. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ примСняСтся ΠΊΠΎ всСм красным значСниям пиксСля для строки Ρ€Π°Π·Π²Π΅Ρ€Ρ‚ΠΊΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎ всСм значСниям синСго для строки Ρ€Π°Π·Π²Π΅Ρ€Ρ‚ΠΊΠΈ (хотя всС Ρ†Π²Π΅Ρ‚Π° Π² строкС Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ ).

А Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ PNG ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… способов Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΊΠ°Π½Π°Π»Π΅; Π₯отя грубая сила являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ прямой, ΠΎΠ½Π° просто прямая.ВмСсто этого Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ экспСримСнтировали с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ практичСским ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ, Π±Π»ΠΈΠ·ΠΊΠΈΠΌ ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ; Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ «НСт» для ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠ°Ρ… сСрого ΠΌΠ΅Π½Π΅Π΅ 8 Π±ΠΈΡ‚. А для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ сумму Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Ρ… Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ; ВмСсто использования ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ 256 вмСсто стандартной Π·Π½Π°ΠΊΠΎΠ²ΠΎΠΉ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π²ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ abs, слоТитС ΠΈΡ… всС вмСстС для Π΄Π°Π½Π½ΠΎΠΉ строки ΠΈ сравнитС суммы для Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ². Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π°Π΅Ρ‚ Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΡƒΡŽ сумму.

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ происходит Π² строкС сканирования, ΠΎΠ½Π° пСрСдаСтся ΠΏΠΎΡ‚ΠΎΠΌΠΊΡƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° LZ77, извСстному ΠΊΠ°ΠΊ DEFLATE; Π­Ρ‚ΠΎΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сочСтаСт Π² сСбС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ LZ77 с ΠΊΠΎΠ΄Π΅Ρ€ΠΎΠΌ Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π°. Π­Ρ‚ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎ компрСссорам, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ PKWARE, PKZIP, GZip ΠΈ Ρ‚. Π”. РСализация являСтся стандартной, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ интСрСсныС ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ касаСтся Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

  1. ΠŸΡ€Π΅Π΄Π΅Π»Ρ‹ дСфлятирования ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π»ΠΈΠ½Π°ΠΌ ΠΎΡ‚ 3 Π΄ΠΎ 258 символов; Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ максимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡƒΡŽ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ сТатия ΠΎΠΊΠΎΠ»ΠΎ 1032: 1.
  2. Если совпадСниС составляСт ΠΌΠ΅Π½Π΅Π΅ 3 символов, Ρ‚ΠΎΠ³Π΄Π° Π²Ρ‹ нСсСтС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° прСдставлСниС символа

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ этих Π΄Π²ΡƒΡ… ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ вашСго изобраТСния ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ влияниС, Ссли совпадСния Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ Π² строкС Ρ€Π°Π·Π²Π΅Ρ€Ρ‚ΠΊΠΈ.

Рассмотрим это ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½ΠΈΠΆΠ΅. ВСрсия 270×90 ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ всСго 20 ΠšΠ‘, Π° вСрсия 270×92 Π² 2 Ρ€Π°Π·Π° большС.

ЛогичСски это каТСтся Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ 540 пиксСлСй ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Π΄Π²ΡƒΠΊΡ€Π°Ρ‚Π½ΠΎΠΌΡƒ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ сТатия. Однако Ссли ΠΌΡ‹ присмотримся Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±Π»ΠΈΠΆΠ΅, ΠΌΡ‹ смоТСм ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ это происходит; Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ тСпловая ΠΊΠ°Ρ€Ρ‚Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, насколько сТат Π΄Π°Π½Π½Ρ‹ΠΉ пиксСль.Π’Π΅ΠΌΠ½ΠΎ-синий = ΠΎΡ‡Π΅Π½ΡŒ сТатый, ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ / красный = Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ сТатый

Π—Π΄Π΅ΡΡŒ происходит Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² мСньшСм ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ большС совпадСний Π² строках Ρ€Π°Π·Π²Π΅Ρ€Ρ‚ΠΊΠΈ, ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, сТатиС Π»ΡƒΡ‡ΡˆΠ΅. Однако нСбольшая настройка Ρ€Π°Π·ΠΌΠ΅Ρ€Π° мСняСт Ρ‚ΠΈΠΏ соотвСтствия, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ; Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Ρ‹ для сопоставлСния Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ находятся Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ нашСго ΠΎΠΊΠ½Π° LZ ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½Π΅ сопоставлСны, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ„Π°ΠΉΠ»Π°.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ, насколько Ρ…ΠΎΡ€ΠΎΡˆΠΎ ваши собствСнныС изобраТСния ΡΠΆΠΈΠΌΠ°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ PNG, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ PNGThermal.

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ PNG — это большС, Ρ‡Π΅ΠΌ просто этапы Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈ сТатия. Π­Ρ‚ΠΎ довольно Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ всС Ρ‚ΠΈΠΏΡ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

НачнСм с Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° PNG ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ряд Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ сСбя, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…. НапримСр, Ρƒ вас Π΅ΡΡ‚ΡŒ Π±Π»ΠΎΠΊ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° PNG , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, Ρ‚Π°ΠΊΡƒΡŽ ​​как ΡˆΠΈΡ€ΠΈΠ½Π°, высота, битовая Π³Π»ΡƒΠ±ΠΈΠ½Π° ΠΈ Ρ‚ΠΈΠΏ Ρ†Π²Π΅Ρ‚Π°.

Π‘Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния содСрТит Ρ„Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ (ΠΎ, ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, эта информация ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π±Π»ΠΎΠΊΠ°Ρ…). Π—Π°Ρ‚Π΅ΠΌ для ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с Ρ†Π²Π΅Ρ‚Π½ΠΎΠΉ ΠΏΠ°Π»ΠΈΡ‚Ρ€ΠΎΠΉ для этого Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ.

И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ½Ρ†Π° Ρ„Π°ΠΉΠ»Π° . И это основныС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹, Π½ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Ρ†Π΅Π»Ρ‹ΠΉ ряд Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

  • Π¦Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
  • ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ цвСтности для отобраТСния Π±Π΅Π»Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ
  • БпСцификация Π³Π°ΠΌΠΌΡ‹
  • Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ гистограммС
  • ВСкстовыС Π΄Π°Π½Π½Ρ‹Π΅ с языком ΠΈΠ»ΠΈ Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…
  • Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΌ пространствС
  • Π”Π°Π½Π½Ρ‹Π΅ стСрСоизобраТСния
  • Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ послСдний Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Ρ„Π°ΠΉΠ» Π±Ρ‹Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½
  • И Π΄Π°Π½Π½Ρ‹Π΅ прозрачности.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ эти Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ — это Ρ‚ΠΎ мСсто, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для рСдактирования Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Ρ‚ΡƒΠ΄Π° ΠΌΠ½ΠΎΠ³ΠΎ мусора. НапримСр, ΠΏΡ€ΠΈ сохранСнии Ρ„Π°ΠΉΠ»Π° PNG ΠΈΠ· Photoshop создаСтся Π±Π»ΠΎΠΊ с надписью Β«, это ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ создано Π² Photoshop. ”Этот Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… пиксСлСй, Π½ΠΎ Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΎΠ½ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² сам Ρ„Π°ΠΉΠ». Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π£Π”ΠΠ›Π•ΠΠ˜Π• бСсполСзных Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π΅ΡˆΠ°ΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для обСспСчСния Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ². На ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 16×16 пиксСлСй, сохранСнноС ΠΈΠ· Photoshop ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ PNG, Π° Π΄Ρ€ΡƒΠ³ΠΎΠ΅ — с использованиСм ΠΎΠΏΡ†ΠΈΠΈ Photoshop Β« экспорт Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, Β», которая удаляСт всю Ρ‡Π΅ΠΏΡƒΡ…Ρƒ.

Π›Π΅Π²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ рСгулярно ΡΠΎΡ…Ρ€Π°Π½ΡΠ»ΠΎΡΡŒ Ρ‡Π΅Ρ€Π΅Π· Photoshop, ΠΏΡ€Π°Π²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡ…Ρ€Π°Π½ΡΠ»ΠΎΡΡŒ Ρ‡Π΅Ρ€Π΅Π· «экспорт Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Β». Ρ€Π°Π·Π½ΠΈΡ†Π° Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π°Ρ… связана с ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ„Π°ΠΉΠ»Π°.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ PNG ΠΌΠΎΠΆΠ΅Ρ‚ Π’ΠΠšΠ–Π• ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² пиксСлСй, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ

Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ = 1 ΠΊΠ°Π½Π°Π», ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ 1,2,4,8 Π±ΠΈΡ‚ Π½Π° ΠΊΠ°Π½Π°Π»

ΠžΡ‚Ρ‚Π΅Π½ΠΊΠΈ сСрого = 1 ΠΊΠ°Π½Π°Π», ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ 1,2,4, 8,16 Π±ΠΈΡ‚ Π½Π° ΠΊΠ°Π½Π°Π»

Π‘Π΅Ρ€Ρ‹ΠΉ + Π°Π»ΡŒΡ„Π° = 2 ΠΊΠ°Π½Π°Π»Π°, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ 8 ΠΈΠ»ΠΈ 16 Π±ΠΈΡ‚ Π½Π° ΠΊΠ°Π½Π°Π»

Truecolor (RGB) = 3 ΠΊΠ°Π½Π°Π»Π°, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ 8 ΠΈΠ»ΠΈ 16 Π±ΠΈΡ‚ Π½Π° ΠΊΠ°Π½Π°Π»

RGBA = 4 ΠΊΠ°Π½Π°Π»Π°, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ 8 ΠΈΠ»ΠΈ 16 Π±ΠΈΡ‚ Π½Π° ΠΊΠ°Π½Π°Π»

Π€ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ пиксСлСй Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ Ρ„Π°ΠΉΠ»Π° изобраТСния.Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ это Π½Π΅ слишком интСрСсно ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ, ΠΊΡ€ΠΎΠΌΠ΅ ΠΊΠ°ΠΊ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ пиксСлСй; Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ изобраТСния Π² градациях сСрого ΠΊΠ°ΠΊ истинного Ρ†Π²Π΅Ρ‚Π° с Π°Π»ΡŒΡ„Π°-ΠΊΠ°Π½Π°Π»ΠΎΠΌ — плохая идСя.

Когда Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ Π½Π΅ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ объСма Π²Π΅Π±-ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, изобраТСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ сСгодня самой большой нСсущСй Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ (хотя Π΅ΡΡ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄Π΅ΠΎ Π² послСднСС врСмя стали ΠΊΠΎΡ€ΠΎΠ»Π΅ΠΌ).

Но Ρ‡Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ интСрСсно, Ρ‚Π°ΠΊ это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ, хотя информация ΠΎ сТатии ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, сущСствуСт ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство чСловСчСских ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΆΠ°Ρ‚ΠΈΡŽ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² Ρ€ΡƒΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ.

Π”Π°Π²Π°ΠΉΡ‚Π΅ вСрнСмся Π² 1985 Π³ΠΎΠ΄, ΠΊΠΎΠ³Π΄Π° Unisys ΠΏΠΎΠ΄Π°Π»Π° ΠΏΠ°Ρ‚Π΅Π½Ρ‚ Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сТатия LZW, Π² Ρ‚ΠΎ врСмя Π½ΠΈΡ‡Π΅Π³ΠΎ особо интСрСсного. НСсколько Π»Π΅Ρ‚ спустя, ΠΊΠΎΠ³Π΄Π° CompuServe ΠΈΠ·ΠΎΠ±Ρ€Π΅Π» Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ 89a (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·ΠΆΠ΅ стал Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ GIF), ΠΎΠ½ΠΈ использовали LZW Π² качСствС основы, Π½Π΅ понимая, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π·Π°ΠΏΠ°Ρ‚Π΅Π½Ρ‚ΠΎΠ²Π°Π½. Unisys Π½Π΅ заботился ΠΎΠ± этом Π΄ΠΎ 1993 Π³ΠΎΠ΄Π°, ΠΊΠΎΠ³Π΄Π° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Netscape Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ‚Π΅Π³Π° IMG HTML наряду с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° 89a. Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π³ΠΎΠ΄Π° Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ изобраТСния стали ΠΏΠΎΠ²Π°Π»ΡŒΠ½Ρ‹ΠΌ ΡƒΠ²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅, ΠΈ Unisys Π½Π°Ρ‡Π°Π»Π° ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ соблюдСниС своСго ΠΏΠ°Ρ‚Π΅Π½Ρ‚Π°.CompuServe ΠΈ Unisys Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ достигли судСбного соглашСния Π² Π΄Π΅ΠΊΠ°Π±Ρ€Π΅ 1994 Π³ΠΎΠ΄Π°, объявив, Ρ‡Ρ‚ΠΎ Unisys Π½Π°Ρ‡Π½Π΅Ρ‚ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ Π·Π° всС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π΅ графичСский Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ 89a. Π§Π΅Ρ€Π΅Π· нСсколько мСсяцСв послС этого Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π³Ρ€ΡƒΠΏΠΏΠ° ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ, свободный ΠΎΡ‚ ΠΏΠ°Ρ‚Π΅Π½Ρ‚ΠΎΠ² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, извСстный ΠΊΠ°ΠΊ Portable Network Graphics ΠΈΠ»ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ PNG.

Π’ 2004 Π³ΠΎΠ΄Ρƒ ΠΏΠ°Ρ‚Π΅Π½Ρ‚ Π½Π° LZW ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ истСк, Π½ΠΎ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Ρ†Π΅Π»ΠΎΠ³ΠΎ дСсятилСтия Π΄Π΅Π±Π°Ρ‚Ρ‹ ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ GIF / PNG Π±Ρ‹Π»ΠΈ горячими срСди ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

PNG — ΠΎΡ‡Π΅Π½ΡŒ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΈ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ изобраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ стал популярным Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ благодаря способности ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ.Но это Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для _Π² любой_ ситуации; Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π»ΡƒΡ‡ΡˆΠΈΠΉ инструмСнт для Ρ€Π°Π±ΠΎΡ‚Ρ‹. Если вашС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ являСтся фотографичСским ΠΈ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ΅ отсутствиС ΠΏΠΎΡ‚Π΅Ρ€ΡŒ Π½Π΅ трСбуСтся, Ρ‚ΠΎΠ³Π΄Π° JPG ΠΈΠ»ΠΈ эквивалСнтный ΠΌΠ΅Ρ‚ΠΎΠ΄ с потСрями Π±ΡƒΠ΄Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ эффСктивным, Ρ‡Π΅ΠΌ любой ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΡŒ. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ мСньшСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈΠ»ΠΈ Π½ΡƒΠΆΠ½Π° ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ, PNG Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ прСимущСством Π½Π°Π΄ JPG.

И Ссли Π²Π°ΠΌ интСрСсно ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° PNG, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с этой Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΡΡƒΡ‚ΡŒΡŽ, которая ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ всС это Π² ~ 40 строк ΠΊΠΎΠ΄Π°.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π΅ΡΡ‚ΡŒ WebP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ даст Π²Π°ΠΌ ΠΈ Ρ‚ΠΎ, ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ .. Но это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ ΡΡ‚Π°Ρ‚ΡŒΡ;)

Π­Π™ !

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ваши PNG-Ρ„Π°ΠΉΠ»Ρ‹? ΠžΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ постом ΠΎ Ρ„Π°ΠΉΠ»Π°Ρ… мСньшСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π° PNG.

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ„Π°ΠΉΠ»Ρ‹ JPG ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ?

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ большСго качСства сТатия Π΄Π°Π½Π½Ρ‹Ρ…? ΠšΡƒΠΏΠΈ мою ΠΊΠ½ΠΈΠ³Ρƒ!

Synalyze It! Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС — Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° PNG

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ для Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ довольно просто.ΠŸΡ€ΠΎΡΡ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС Ρ„Π°ΠΉΠ»Π° изобраТСния PNG. (ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ см. Http://www.w3.org/TR/PNG/)

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ руководство ΠΏΠΎ Synalyze It! это для Ρ„Π°ΠΉΠ»ΠΎΠ² Adobe Swatch Exchange (Π½Π°ΠΆΠΌΠΈΡ‚Π΅ здСсь)

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Synalyze It! привСтствуСт вас Ρ‚Π°ΠΊ:

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв сначала Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» для Π°Π½Π°Π»ΠΈΠ·Π° — Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, /System/Library/WidgetResources/resize.png .Если Π²Ρ‹ Π½Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ Π² настройках, вас спросят, Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π»ΠΈ Π²Ρ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ PNG ΠΈΠ· Synalyze It! сайт:

Для этого ΡƒΡ€ΠΎΠΊΠ° скаТитС β„– , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свою ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ PNG. Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π²ΠΈΠ΄:

.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΆΠ°Ρ‚ΡŒ Cmd-Shift-N , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ, Π½ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ список Grammar Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Create Grammar… .ΠŸΠΎΡΠ²ΠΈΡ‚ΡΡ Π½ΠΎΠ²Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, ΠΈ Ссли Π²Ρ‹ Π½Π°ΠΆΠΌΠ΅Ρ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Grammar Info Π½Π° Π΅Π³ΠΎ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ всС поля Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ автоматичСски:

Подсказка: Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° UTI, MIME-Ρ‚ΠΈΠΏΠ°, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»Π° ΠΈ OSType. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ пСрСвСсти.

НаТмитС Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ OK . Если Π²Ρ‹ Π²Π΅Ρ€Π½Π΅Ρ‚Π΅ΡΡŒ ΠΊ справочному Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρƒ, ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠ΅ прСдставлСниС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ² PNG состоит ΠΈΠ· 8 Π±Π°ΠΉΡ‚ΠΎΠ².Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ эти Π±Π°ΠΉΡ‚Ρ‹ Π² Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ, просто Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 8 Π±Π°ΠΉΡ‚ΠΎΠ² Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΌ прСдставлСнии, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅, удСрТивая Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Ctrl (ΠΈΠ»ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ) ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Insert / Binary .

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом Π±ΡƒΠ΄Π΅Ρ‚ присвоСниС ΠΈΠΌΠ΅Π½ΠΈ ΠΈ Ρ†Π²Π΅Ρ‚Π° добавляСмому Π½ΠΎΠ²ΠΎΠΌΡƒ элСмСнту Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ структуры:

ШСстнадцатСричный Π²ΠΈΠ΄ ΠΎΡ‚Ρ€Π°Π·ΠΈΡ‚ эти измСнСния:

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Ρ„Π°ΠΉΠ»Π° PNG состоит ΠΈΠ· 4-Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ поля Π΄Π»ΠΈΠ½Ρ‹, 4-Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°, Π΄Π°Π½Π½Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΈ 4-Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ суммы CRC.Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ структуру Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ 25 (19h) Π±Π°ΠΉΡ‚ΠΎΠ² Π·Π° Π±Π°ΠΉΡ‚Π°ΠΌΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° (8-32), Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅, удСрТивая Ctrl, ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Insert / Structure :

Подсказка: Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π½Π°Ρ‡Π°Π»ΠΎ, ΠΊΠΎΠ½Π΅Ρ† ΠΈ Π΄Π»ΠΈΠ½Ρƒ выдСлСния Π² дСсятичных числах, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅, удСрТивая ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Ctrl, Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΠΎΠ΄ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΌ прСдставлСниСм ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ВсС столбцы / ДСсятичноС число .

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ, Π½Π°Π·ΠΎΠ²ΠΈΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ структуру Β« Chunk Β» ΠΈ, Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ€Π°ΡΠΊΡ€Π°ΡΡŒΡ‚Π΅ Π΅Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ»Π΅ Color .Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнты структуры Chunk: Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 4 Π±Π°ΠΉΡ‚Π° Π² Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ (ΠΏΠΎΠ»Π΅ Length , Π±Π°ΠΉΡ‚Ρ‹ 8-11), Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΈΡ… ΠΊΠ°ΠΊ Number , ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ 4 Π±Π°ΠΉΡ‚Π° (chunk Type , 12 -15) ΠΊΠ°ΠΊ строка , Π±Π°ΠΉΡ‚Ρ‹ 16-28 (Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ… ) ΠΊΠ°ΠΊ структура ΠΈ послСдниС 4 Π±Π°ΠΉΡ‚Π° ( CRC , 29-32) ΠΊΠ°ΠΊ Π½ΠΎΠΌΠ΅Ρ€ .

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ваша Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π’ соотвСтствии со спСцификациСй PNG ΠΏΠΎΠ»Π΅ Π΄Π»ΠΈΠ½Ρ‹ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ количСство Π±Π°ΠΉΡ‚ΠΎΠ² Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠ°.ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ создали элСмСнты структуры ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°, Π΄Π»ΠΈΠ½Π° устанавливаСтся Ρ€Π°Π²Π½ΠΎΠΉ 13.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля Π΄Π»ΠΈΠ½Ρ‹ Π² структурС Chunk, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ prev.Length Π² ΠΏΠΎΠ»Π΅ Π΄Π»ΠΈΠ½Ρ‹ элСмСнта Data:

ПолС Π΄Π»ΠΈΠ½Ρ‹ структуры Chunk Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡ΠΈΡ‰Π΅Π½ΠΎ, поэтому Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Repeat max count Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ установлСно большоС число. Π’Π΅ΠΏΠ΅Ρ€ΡŒ структура Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°, ΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π΅ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ вСсь Ρ„Π°ΠΉΠ»:

Π Π°Π·Π²Π΅ это Π½Π΅ Π±Ρ‹Π»ΠΎ просто? Π•Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅: ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ Π²Π°ΠΌΠΈ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ PNG! ΠžΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ PNG.

Анализ структуры Ρ„Π°ΠΉΠ»Π° PNG — Анализ PNG

Для создания Π±ΠΎΠ»Π΅Π΅ слоТных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π» PNG.

Ѐайловая структура PNG

Π’ зависимости ΠΎΡ‚ опрСдСлСния Ρ„Π°ΠΉΠ»Π° PNG, располоТСниС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π° всСгда описываСтся Π±Π°ΠΉΡ‚ΠΎΠΌ с фиксированным Π±ΠΈΡ‚ΠΎΠΌ:

ДСсятичноС число 137 80 78 71 13 10 26 10
ШСстнадцатСричноС число 4E 0D 0A 1 Π° 0A

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π°ΠΉΡ‚ 0x89 Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° символов ASCII, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ воспринимали Ρ„Π°ΠΉΠ»Ρ‹ PNG ΠΊΠ°ΠΊ тСкстовыС.ΠžΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Π° состоит ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 3 Π±Π»ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… PNG (Chunk) Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ порядкС, поэтому стандартная структура Ρ„Π°ΠΉΠ»Π° PNG Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π€Π°ΠΉΠ» PNG Π€Π»Π°Π³ΠΈ Π‘Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… PNG …… Π‘Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… PNG

Π‘Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… PNG (Chunk)

PNG опрСдСляСт Π΄Π²Π° Ρ‚ΠΈΠΏΠ° Π±Π»ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… называСтся критичСским Π±Π»ΠΎΠΊΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… (критичСский Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся стандартным Π±Π»ΠΎΠΊΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ называСтся Π±Π»ΠΎΠΊΠΎΠΌ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π±Π»ΠΎΠΊΠΎΠΌ. Π΄Π°Π½Π½Ρ‹Ρ….ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ 4 стандартных Π±Π»ΠΎΠΊΠ°, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡ… ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ, ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС для чтСния ΠΈ записи PNG Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΡ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ. Π₯отя спСцификация Ρ„Π°ΠΉΠ»Π° PNG Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ компилятор PNG ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π» ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π» Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…, спСцификация ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅ прСдставлСна ​​катСгория Π±Π»ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π² PNG, Π³Π΄Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ‚Π΅ΠΌΠ½Ρ‹ΠΉ Ρ„ΠΎΠ½ для различСния ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ².

Π‘Π»ΠΎΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ PNG
Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… НазваниС Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π‘Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ β„– ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ ΠΏΠΎ ΠΌΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ
IHDR Π‘Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π° Π›ΠΈ Π›ΠΈ ΠŸΠ΅Ρ€Π²Π°Ρ ΡˆΡ‚ΡƒΠΊΠ°
CHRM Π‘Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… основного Ρ†Π²Π΅Ρ‚Π° ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ Π±Π΅Π»ΠΎΠ³ΠΎ Π›ΠΈ Is ΠŸΠ΅Ρ€Π΅Π΄ Plte ΠΈ Idat
Π“ΠΠœΠ Π‘Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… Π³Π°ΠΌΠΌΡ‹ изобраТСния Π›ΠΈ Is Π”ΠΎ Plte ΠΈ Idat
Π‘Π±ΠΈΡ‚ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π›ΠΈ Is ΠŸΠ΅Ρ€Π΅Π΄ Plte ΠΈ Idat
Plte Π‘Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ Π›ΠΈ Is Π”ΠΎ Π˜Π΄Π°Ρ‚Π°
Π‘ΠΊΠ³ Π‘Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π° Π›ΠΈ Is Π”ΠΎ Idat послС Plte
HIST Π‘Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… гистограммы изобраТСния Π›ΠΈ Is Π”ΠΎ Idat послС Plte
Врнс Π‘Π»ΠΎΠΊ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния Π›ΠΈ Is Π”ΠΎ Idat послС Plte
Π’Π«ΠšΠ› (Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…) Π›ΠΈ Is Π”ΠΎ Π˜Π΄Π°Ρ‚Π°
PHYs Π‘Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ физичСском Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ пиксСля Π›ΠΈ Is Π”ΠΎ Π˜Π΄Π°Ρ‚Π°
SCAL (Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…) Π›ΠΈ Is Π”ΠΎ Π˜Π΄Π°Ρ‚Π°
IDAT Π‘Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния Is Π›ΠΈ НСпрСрывно с Π΄Ρ€ΡƒΠ³ΠΈΠΌ Idat
ВрСмя Π‘Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ послСднСго измСнСния изобраТСния Π›ΠΈ Is Π‘Π΅Π·Π»ΠΈΠΌΠΈΡ‚
Π’Π•ΠšΠ‘Π’ Π‘Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… тСкстовой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Is Is Π‘Π΅Π·Π»ΠΈΠΌΠΈΡ‚
Ztxt Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ Π±Π»ΠΎΠΊΠΎΠ² тСкстовых Π΄Π°Π½Π½Ρ‹Ρ… Is Is Π‘Π΅Π·Π»ΠΈΠΌΠΈΡ‚
FRAc (Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…) Is Is Π‘Π΅Π·Π»ΠΈΠΌΠΈΡ‚
Gifg (Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…) Is Is Π‘Π΅Π·Π»ΠΈΠΌΠΈΡ‚
ΠŸΠžΠ”ΠΠ ΠžΠš ​​ (Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…) Is Is Π‘Π΅Π·Π»ΠΈΠΌΠΈΡ‚
Gifx (Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…) Is Is Π‘Π΅Π·Π»ΠΈΠΌΠΈΡ‚
ΠΊΠΎΠ½Π΅Ρ† Π”Π°Π½Π½Ρ‹Π΅ изобраТСния ΠΊΠΎΠ½Ρ†Π° Π›ΠΈ Π›ΠΈ ПослСдний Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…

Для простоты ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌ Π½Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»Π΅ PNG 4 Π±Π»ΠΎΠΊΠ° хранятся Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ порядкС ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…

Π’ Ρ„Π°ΠΉΠ»Π΅ PNG ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ состоит ΠΈΠ· 4 частСй, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ:

Имя ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π±Π°ΠΉΡ‚ΠΎΠ² ОписаниС
Π”Π»ΠΈΠ½Π° (длинная) 4 Π±Π°ΠΉΡ‚Π° ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ поля Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±Π»ΠΎΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, которая Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ (231-1) Π±Π°ΠΉΡ‚ΠΎΠ²
Код Ρ‚ΠΈΠΏΠ° Π±Π»ΠΎΠΊΠ° (ΠΊΠΎΠ΄ Ρ‚ΠΈΠΏΠ° Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…) 4 Π±Π°ΠΉΡ‚Π° ΠšΠΎΠ΄Ρ‹ Π±Π»ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° состоят ΠΈΠ· Π±ΡƒΠΊΠ² ASCII (A-Z ΠΈ A-Z)
Π”Π°Π½Π½Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° (Π΄Π°Π½Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠ°) ИзмСняСмая Π΄Π»ΠΈΠ½Π° Π₯Ρ€Π°Π½ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² соотвСтствии с ΠΊΠΎΠ΄ΠΎΠΌ Ρ‚ΠΈΠΏΠ° Π±Π»ΠΎΠΊΠ°
CRC (ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ цикличСского ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°) 4 Π±Π°ΠΉΡ‚Π° Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ цикличСских ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΎΠ² для обнаруТСния ошибок

ЗначСния Π² ΠΏΠΎΠ»Π΅ CRC (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° цикличСским ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ) Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ для Π΄Π°Π½Π½Ρ‹Ρ… Π² Π΄ΠΎΠΌΠ΅Π½Π΅ ΠΊΠΎΠ΄Π° Ρ‚ΠΈΠΏΠ° Π±Π»ΠΎΠΊΠ° ΠΈ Π΄ΠΎΠΌΠ΅Π½Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠ°.Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ‡Π½Ρ‹ΠΉ для CRC Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π² ISO 3309 ΠΈ ITU-T v.42, ΠΈ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ рассчитываСтся ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌ, сгСнСрированный ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ CRC:

X32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1

CRC: Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. ΠŸΡ€ΠΎΡΡ‚ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ….

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° структуру ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ.

IHDR Π‘Π»ΠΎΠΊ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°: ΠΎΠ½ содСрТит ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния, хранящихся Π² Ρ„Π°ΠΉΠ»Π΅ PNG, ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… PNG ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π±Π»ΠΎΠΊ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π° Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… PNG.IHDR Π‘Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π° состоит ΠΈΠ· 13 Π±Π°ΠΉΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅.

Имя Π΄ΠΎΠΌΠ΅Π½Π° ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π±Π°ΠΉΡ‚ΠΎΠ² ОписаниС
Π¨ΠΈΡ€ΠΈΠ½Π° 4 Π±Π°ΠΉΡ‚Π° Π¨ΠΈΡ€ΠΈΠ½Π° изобраТСния, Π² пиксСлях
Высота 4 Π±Π°ΠΉΡ‚Π° Высота изобраТСния, Π² пиксСлях
Битовая Π³Π»ΡƒΠ±ΠΈΠ½Π° 1 Π±Π°ΠΉΡ‚ Π“Π»ΡƒΠ±ΠΈΠ½Π° изобраТСния:
ΠŸΡ€ΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ†Π²Π΅Ρ‚Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ: 1,2,4 ΠΈΠ»ΠΈ 8
Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² градациях сСрого: 1,2,4,8 ΠΈΠ»ΠΈ 16
Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ True Color: 8 ΠΈΠ»ΠΈ 16
Π¦Π²Π΅Ρ‚ Π’ΠΈΠΏ 1 Π±Π°ΠΉΡ‚ Π’ΠΈΠΏ Ρ†Π²Π΅Ρ‚Π°:
0: Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠ°Ρ… сСрого, 1,2,4,8 ΠΈΠ»ΠΈ 16
2: Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ True Color, 8 ΠΈΠ»ΠΈ 16
3: Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ†Π²Π΅Ρ‚Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, 1,2,4 ΠΈΠ»ΠΈ 8
4: Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠ°Ρ… сСрого с Π°Π»ΡŒΡ„Π°-ΠΊΠ°Π½Π°Π»ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Π°, 8 ΠΈΠ»ΠΈ 16
6: ΠΏΠΎΠ»Π½ΠΎΡ†Π²Π΅Ρ‚Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π°Π»ΡŒΡ„Π°-ΠΊΠ°Π½Π°Π»Π°, 8 ΠΈΠ»ΠΈ 16
ΠœΠ΅Ρ‚ΠΎΠ΄ сТатия 1 Π±Π°ΠΉΡ‚ ΠœΠ΅Ρ‚ΠΎΠ΄ сТатия (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π²Ρ‹Π²ΠΎΠ΄Π° LZ77)
ΠœΠ΅Ρ‚ΠΎΠ΄ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ 1 Π±Π°ΠΉΡ‚ ΠœΠ΅Ρ‚ΠΎΠ΄ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ
ΠœΠ΅Ρ‚ΠΎΠ΄ чСрСсстрочной Ρ€Π°Π·Π²Π΅Ρ€Ρ‚ΠΊΠΈ 1 Π±Π°ΠΉΡ‚ ΠœΠ΅Ρ‚ΠΎΠ΄ чСрСсстрочной Ρ€Π°Π·Π²Π΅Ρ€Ρ‚ΠΊΠΈ:
0: Бплошная Ρ€Π°Π·Π²Π΅Ρ€Ρ‚ΠΊΠ°
1: ADAM7 (ΠΌΠ΅Ρ‚ΠΎΠ΄ 7-ΠΊΡ€Π°Ρ‚Π½ΠΎΠΉ чСрСсстрочной Ρ€Π°Π·Π²Π΅Ρ€Ρ‚ΠΊΠΈ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Адамом М.ΠšΠΎΡΡ‚Π΅Π»Π»ΠΎ)

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ для использования PNG Π² ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°Ρ…, трСбования ΠΊ изобраТСниям PNG, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ Π² MIDP1.0, прСдставлСны здСсь:

    • Π’ MIDP1.0 ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ изобраТСния PNG Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с вСрсиСй 1.0.
    • Π Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π°: MIDP ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ изобраТСния PNG любого Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π° самом Π΄Π΅Π»Π΅, Ссли ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ слишком Π²Π΅Π»ΠΈΠΊΠΎ, Π΅Π³ΠΎ нСльзя ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΠ·-Π·Π° Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠΈ памяти.
    • Π’ΠΈΠΏ Ρ†Π²Π΅Ρ‚Π°: ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ всС Ρ‚ΠΈΠΏΡ‹ Ρ†Π²Π΅Ρ‚Π°, хотя ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ этих Ρ†Π²Π΅Ρ‚ΠΎΠ² зависит ΠΎΡ‚ фактичСских возмоТностСй дисплСя устройства.ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, MIDP ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π°Π»ΡŒΡ„Π°-ΠΊΠ°Π½Π°Π», Π½ΠΎ вся информация Π°Π»ΡŒΡ„Π°-ΠΊΠ°Π½Π°Π»Π° игнорируСтся ΠΈ обрабатываСтся ΠΊΠ°ΠΊ Π½Π΅ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚.
    • Π“Π»ΡƒΠ±ΠΈΠ½Π° Ρ†Π²Π΅Ρ‚Π°: ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ всС значСния Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ Ρ†Π²Π΅Ρ‚Π°.
    • ΠœΠ΅Ρ‚ΠΎΠ΄ сТатия: ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сТатиС deflate, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎ способу сТатия Ρ„Π°ΠΉΠ»ΠΎΠ² jar, поэтому ΠΏΡ€ΠΈ распаковкС Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния PNG ΠΈ распаковкС Ρ„Π°ΠΉΠ»Π° jar ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄.
    • ΠœΠ΅Ρ‚ΠΎΠ΄ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ: ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ всС 5 ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² PNG.
    • ЧСрСсстрочная Ρ€Π°Π·Π²Π΅Ρ€Ρ‚ΠΊΠ°: Π₯отя MIDP ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ 0, 12 способов, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡ€ΠΈ использовании чСрСсстрочной Ρ€Π°Π·Π²Π΅Ρ€Ρ‚ΠΊΠΈ MIDP Π½Π° самом Π΄Π΅Π»Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ€Π΅ΠΆΠΈΠΌ чСрСсстрочной Ρ€Π°Π·Π²Π΅Ρ€Ρ‚ΠΊΠΈ для отобраТСния.
    • Plte Chunk: ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°
    • Π‘Π»ΠΎΠΊ IDAT: информация ΠΎΠ± ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· 5 способов Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ (НСт, Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ, Π’Π²Π΅Ρ€Ρ…, БрСдняя, ​​Paeth)
    • Iend Chunk: это ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ PNG считаСтся допустимым ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ PNG ΠΏΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Iend.
    • ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…: MIDP ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ΄Π½Π°ΠΊΠΎ это Π½Π΅ трСбуСтся.

BKGD CHRM GAMA HIST ICCP itxt pHYs

Sbit SPLT SRGB tEXt time Trns ztxt
Plte Π‘Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ Plte (Π±Π»ΠΎΠΊ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹) содСрТит Π΄Π°Π½Π½Ρ‹Π΅ прСобразования Ρ†Π²Π΅Ρ‚Π°, относящиСся ΠΊ индСксированным Ρ†Π²Π΅Ρ‚Π½Ρ‹ΠΌ изобраТСниям (ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с индСксированными Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ относятся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ индСксированным Ρ†Π²Π΅Ρ‚Π½Ρ‹ΠΌ изобраТСниям ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅Π΄ Π±Π»ΠΎΠΊΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния.Π‘Π»ΠΎΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Plte ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠ°Π»ΠΈΡ‚Ρ€Π΅, которая опрСдСляСт ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΈ Plte ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠ°Π»ΠΈΡ‚Ρ€Π΅ ΠΎΡ‚ 1 Π΄ΠΎ 256, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… состоит ΠΈΠ· 3 Π±Π°ΠΉΡ‚ΠΎΠ²:

Π¦Π²Π΅Ρ‚ Π±Π°ΠΉΡ‚ΠΎΠ² Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ 1 Π±Π°ΠΉΡ‚ 0 = Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ, 255 = красный
Π·Π΅Π»Π΅Π½Ρ‹ΠΉ 1 Π±Π°ΠΉΡ‚ 0 = Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ, 255 = Π·Π΅Π»Π΅Π½Ρ‹ΠΉ
Π‘ΠΈΠ½ΠΈΠΉ 1 Π±Π°ΠΉΡ‚ 0 = Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ, 255 = синий

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π΄Π»ΠΈΠ½Π° ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΊΡ€Π°Ρ‚Π½Π° 3, ΠΈΠ½Π°Ρ‡Π΅ ΠΏΠ°Π»ΠΈΡ‚Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ нСдопустимой.4 = 16), Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ PNG Π±ΡƒΠ΄Π΅Ρ‚ нСдопустимым. Π˜ΡΡ‚ΠΈΠ½Π½Ρ‹Π΅ Ρ†Π²Π΅Ρ‚Π½Ρ‹Π΅ изобраТСния ΠΈ истинныС Ρ†Π²Π΅Ρ‚Π½Ρ‹Π΅ изобраТСния с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π°Π»ΡŒΡ„Π°-ΠΊΠ°Π½Π°Π»Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ отобраТСния Π½Π΅ истинных Ρ†Π²Π΅Ρ‚ΠΎΠ² ΠΌΠΎΠ³Π»ΠΈ количСствСнно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ изобраТСния для отобраТСния изобраТСния.
IDAT Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния: Он Ρ…Ρ€Π°Π½ΠΈΡ‚ фактичСскиС Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ нСсколько ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² изобраТСния Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…. Idat Ρ…Ρ€Π°Π½ΠΈΡ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, поэтому, Ссли Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ структуру idat, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π»Π΅Π³ΠΊΠΎ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ изобраТСния PNG. iend Image end Data iend (Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Ρ‚Ρ€Π΅ΠΉΠ»Π΅Ρ€Π° изобраТСния): ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠΈ Ρ„Π°ΠΉΠ»Π° PNG ΠΈΠ»ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ Π² ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π°. Если ΠΌΡ‹ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ посмотрим Π½Π° Ρ„Π°ΠΉΠ» PNG, ΠΌΡ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ 12 символов Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ„Π°ΠΉΠ»Π° всСгда Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: 4E 42 60 82 для опрСдСлСния структуры Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…, Π΄Π»ΠΈΠ½Π° Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… iend всСгда Ρ€Π°Π²Π½Π° 0 ( 00 00 00 00, Ссли искусствСнно Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ), ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… всСгда Π±ΡƒΠ΄Π΅Ρ‚ iend (4E 44), поэтому CRC всСгда Π±ΡƒΠ΄Π΅Ρ‚ AE 42 60 82. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования PNG НиТС прСдставлСно ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, созданноС Ρ„Π΅ΠΉΠ΅Ρ€Π²Π΅Ρ€ΠΊΠΎΠΌ, Ρ€Π°Π·ΠΌΠ΅Ρ€ изобраТСния 8 * 8, для удобства просмотра ΡƒΠ²Π΅Π»ΠΈΡ‡ΡŒΡ‚Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ UltraEdit32 ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

00000000 ~ 00000007: Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ 8 Π±Π°ΠΉΡ‚ΠΎΠ² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ Ρ„Π°ΠΉΠ»Π° PNG. 4 = 16, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ это 16-Ρ†Π²Π΅Ρ‚Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 16 Ρ†Π²Π΅Ρ‚ΠΎΠ², ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ссли количСство Ρ†Π²Π΅Ρ‚ΠΎΠ² Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 8, 03 ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ большС)

  • 03 Π¦Π²Π΅Ρ‚ΠΎΡ‚ΠΈΠΏ, индСксированноС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
  • Π’ спСцификации PNG ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ всСгда Π±ΡƒΠ΄Π΅Ρ‚ 0 (Π° Π½Π΅ 0 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… для Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ использования Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° сТатия), Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ сТатия (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π΄Π΅Ρ€ΠΈΠ²Π°Ρ†ΠΈΠΈ LZ77)
  • 00 Π’Π°ΠΌ ΠΆΠ΅.8 = 256)
    00000030 ~ 00000062: Π’ΠΎΡ‚ информация ΠΎ ΠΏΠ°Π»ΠΈΡ‚Ρ€Π΅

      • 00 00 00 27 ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Π»ΠΈΠ½Ρƒ 39 Π±Π°ΠΉΡ‚ΠΎΠ² ΠΈ 13 Ρ†Π²Π΅Ρ‚ΠΎΠ²
      • Π›ΠΎΠ³ΠΎΡ‚ΠΈΠΏ 4C Plte
      • FF FF 00 Π¦Π²Π΅Ρ‚ 0
      • FF ED 00 Π¦Π²Π΅Ρ‚ 1
      • …… ……
      • B2 послСдний Ρ†Π²Π΅Ρ‚, 12
      • 5F F5 BB DD ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° CRC

    00000063 ~ 000000C5: Π­Ρ‚ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π» содСрТит Phys, тСкст Π΄Π²ΡƒΡ… Ρ‚ΠΈΠΏΠΎΠ² Π±Π»ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… всСго 3 Π±Π»ΠΎΠΊΠ°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ, ΠΈ поэтому большС Π½Π΅ описываСтся ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.

    000000c0 ~ 000000f8: Π’Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ Ρ€Π°Π·Π΄Π΅Π» — это Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… IDAT

      • 00 00 00 27 Π”Π»ΠΈΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ… 39 Π±Π°ΠΉΡ‚
      • Π›ΠΎΠ³ΠΎΡ‚ΠΈΠΏ Idat
      • 9C … Π‘ΠΆΠ°Ρ‚Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΌΠ΅Ρ‚ΠΎΠ΄ сТатия LZ77
      • DA A5 CRC ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ сумма

    Π Π°Π·Π΄Π΅Π» сТатых Π΄Π°Π½Π½Ρ‹Ρ… Π² Idat описан Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΠΎΠ·ΠΆΠ΅.
    000000f9 ~ 00000104: ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…, эта Ρ‡Π°ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ сказано Π²Ρ‹ΡˆΠ΅, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ XX (XX) 4E 42 60 82 Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ смогли ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ„Π°ΠΉΠ»Π° PNG.ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ PNG ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ критичСских Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ², с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого стандарта ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»ΠΎΠ² PNG, ΡƒΠ΄Π°Π»ΠΈΠ² всС Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. (ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ PNG ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Ρ‚Π°ΠΊΡƒΡŽ β€‹β€‹ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΊΠ°ΠΊ слои, тСкст ΠΈ Ρ‚. Π”., И послС удалСния этих Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ тСряСт свой исходный Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ символ.) Π€Π°ΠΉΠ» PNG послС Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… удаляСтся, Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ составляСт 147 Π±Π°ΠΉΡ‚, исходный Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° — 261 Π±Π°ΠΉΡ‚, Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ, Π° содСрТимоС изобраТСния Π½Π΅ измСняСтся.

      • Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… IDAT гСнСрируСтся с использованиСм Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сТатия LZ77, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ процСссором Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°

    На самом Π΄Π΅Π»Π΅, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ интСрСсныС Π²Π΅Ρ‰ΠΈ, измСняя Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚Π° Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, эффСкт ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΎΠ±Π»Π°ΠΊΠ° / Π²ΠΎΠ΄Ρ‹, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ эффСкт затухания изобраТСния ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

    http://www.cnblogs.com/lidabo/p/3701197.html

    Анализ структуры Ρ„Π°ΠΉΠ»Π° PNG — Анализ PNG

    png idat кусок

    Π˜Ρ‚Π°ΠΊ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ слСдуСт ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ, ΠΏΠΎΠΊΠ° ΠΌΡ‹ встрСтим Π±Π»ΠΎΠΊ IEND, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊ IDAT.TweakPNG — это низкоуровнСвая ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° для изучСния ΠΈ измСнСния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ PNG. Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Windows XP ΠΈ Π²Ρ‹ΡˆΠ΅. БущСствуСт 4 Π²ΠΈΠ΄Π° критичСских Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ 14 Π²ΠΈΠ΄ΠΎΠ² Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ². ДопустимоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ PNG Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π±Π»ΠΎΠΊ IHDR, ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Π±Π»ΠΎΠΊΠΎΠ² IDAT ΠΈ Π±Π»ΠΎΠΊ IEND. Π’ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Ρ„Π°ΠΉΠ»Π° PNG (ΠΌΡ‹ сосрСдоточимся Π½Π° Ρ„Π°ΠΉΠ»Π°Ρ… PNG с истинным Ρ†Π²Π΅Ρ‚ΠΎΠΌ, Π° Π½Π΅ Π½Π° индСксированных) Π±Π»ΠΎΠΊ IDAT Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ пиксСлях. Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ IDAT ΠΏΠΎ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ 0x150008, Π΄Π»ΠΈΠ½Π° 45027 Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ IDAT ΠΏΠΎ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ 0x15aff7, Π΄Π»ΠΈΠ½Π° 138 Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² IEND ΠΏΠΎ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ 0x15b08d, Π΄Π»ΠΈΠ½Π° 0 Ошибок Π² sctf Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΎ.png (28 Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ², сТатиС 36,8%). Π’ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Ρ„Π°ΠΉΠ»Π° PNG (ΠΌΡ‹ сосрСдоточимся Π½Π° Ρ„Π°ΠΉΠ»Π°Ρ… PNG с истинным Ρ†Π²Π΅Ρ‚ΠΎΠΌ, Π° Π½Π΅ Π½Π° индСксированных) Π±Π»ΠΎΠΊ IDAT Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ пиксСлях. Насколько это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ слоТно, ΠΏΡ€Π°Π²Π΄Π°? PNG: Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π·Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌΒΆ БпСцификация PNG опрСдСляСт 18 Ρ‚ΠΈΠΏΠΎΠ² Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ². Π‘ΠΌ. Π­Ρ‚ΠΎ сообщСниС Π½Π° Ρ„ΠΎΡ€ΡƒΠΌΠ΅ Exiftool. Π’Π°ΠΊΠΎΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π°, Π½ΠΎ позволяСт Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ PNG Π² ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π§Π°Π½ΠΊ ‘fdAT’ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ Ρ‡Π°Π½ΠΊ ‘IDAT’. ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Ρ„Π°ΠΉΠ»ΠΎΠ² PNG. Π‘ΠΆΠ°Ρ‚Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… прСдставляСт собой ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡŽ содСрТимого ΠΏΠΎΠ»Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ… всСх Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² fdAT Π² ΠΊΠ°Π΄Ρ€Π΅.Он ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Ρƒ ΠΆΠ΅ структуру, Ρ‡Ρ‚ΠΎ ΠΈ Π±Π»ΠΎΠΊ IDAT, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΅ΠΌΡƒ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ порядковый Π½ΠΎΠΌΠ΅Ρ€. IDAT содСрТит ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΎ Π½Π° нСсколько Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² IDAT. Если Π²Π°ΠΌ интСрСсно ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈ сТатии ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ PNG, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с Ρ€Π°Π·Π΄Π΅Π»ΠΎΠΌ Β«Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΈ сТатиС». PNG: CreationTime ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ написании с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ exiftool. Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° PNG, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ здСсь, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ прСдоставляСт PyPNG. Π§Ρ‚ΠΎΠ±Ρ‹ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ хотя Π±Ρ‹ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стСпСни Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ² PNG.ΠœΠ΅Ρ‚ΠΎΠ΄ сТатия PNG 0 (СдинствСнный ΠΌΠ΅Ρ‚ΠΎΠ΄ сТатия, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π² настоящСС врСмя для PNG) опрСдСляСт сТатиС с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ / Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ со ΡΠΊΠΎΠ»ΡŒΠ·ΡΡ‰ΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 32768 Π±Π°ΠΉΡ‚. ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² сообщСниС Fin1te Β«XSS Π½Π° Facebook с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ PNG ΠΈ Wonky Content TypesΒ» ΠΈ сообщСниС idontplaydarts Β«ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π΅Π±-ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… ΠΎΠ±ΠΎΠ»ΠΎΡ‡Π΅ΠΊ Π² Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ… PNG IDATΒ», я ΠΏΠΎΠ΄ΡƒΠΌΠ°Π», Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свою ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ. Π‘ΠΌ. Π‘Π²ΠΎΠ΄ΠΊΡƒ стандартных Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ PNG. ΠšΠ°ΠΆΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠ° PNG IDAT прСкращаСтся, Π΄Π°ΠΆΠ΅ Ссли Π·Π° Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ спСцификациСй.Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Π΄Ρ€Π° трСбуСтся ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ ΠΎΠ΄ΠΈΠ½ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ‘fdAT’. ИмСнно Π² этом Π±Π»ΠΎΠΊΠ΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ PHP. ИмСнно Π² этом Π±Π»ΠΎΠΊΠ΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ PHP. Π‘Π»ΠΎΠΊ IDAT ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° нСсколько Π±Π»ΠΎΠΊΠΎΠ². Π‘ΠΆΠ°Ρ‚ΠΈΠ΅. Π‘Π»ΠΎΠΊ IDAT содСрТит фактичСскиС Π΄Π°Π½Π½Ρ‹Π΅ изобраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сТатия. Π§Π°Π½ΠΊ IDAT. ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Ρ„Π°ΠΉΠ»ΠΎΠ² PNG. Interlacd PNG ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ чувствовали, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ загруТаСтся быстрСС. А ΠΏΠΎΠΊΠ° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ пиксСли всСгда хранятся ΠΊΠ°ΠΊ 3 Π±Π°ΠΉΡ‚Π°, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ RGB.Π‘Π»ΠΎΠΊ IDAT содСрТит фактичСскиС Π΄Π°Π½Π½Ρ‹Π΅ изобраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сТатия. Пока ΠΌΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ пиксСли всСгда хранятся ΠΊΠ°ΠΊ 3 Π±Π°ΠΉΡ‚Π°, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ RGB. Π§Π΅Ρ‚Ρ‹Ρ€Π΅Ρ…Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Ρ‚ΠΈΠΏΠ° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° содСрТит дСсятичныС значСния 73 68 65 84. Π­Ρ‚ΠΎΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ интСрСсСн ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° PNG. Какая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° PyPNG обСспСчиваСт нСбольшой Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π°, Π½ΠΎ позволяСт ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» in! Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ IHDR, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΅ΠΌΡƒ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ порядковый Π½ΠΎΠΌΠ΅Ρ€, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ здСсь! ЗаинтСрСсованы Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠ° Π±Π»ΠΎΠΊΠ° PNG, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π»ΠΎΠΊ IDAT трСбуСтся.Π˜ΠΌΠ΅Π΅Ρ‚ Ρ‚Ρƒ ΠΆΠ΅ Ρ†Π΅Π»ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈ Π±Π»ΠΎΠΊ IDAT. ΠœΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими Π±Π»ΠΎΠΊΠ°ΠΌΠΈ IDAT. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ прСдоставляСт PyPNG, ΠΎΠ½ сохраняСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ пиксСлях, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ. Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π±Π»ΠΎΠΊΠ° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заинтСрСсованы Π² ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ … ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠ°Π΄Ρ€, написанный exiftool, пиксСли всСгда хранятся ΠΊΠ°ΠΊ 3 Π±Π°ΠΉΡ‚Π° … ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ RGB, этот Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ PHP сТатия. Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π½Π° нСсколько Π±Π»ΠΎΠΊΠΎΠ² IDAT, ΠΈ Π±Π»ΠΎΠΊ IEND, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вас интСрСсуСт, ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΡŽΡ‰Π΅ΠΌ сТатии… ВсС Ρ‡Π°Π½ΠΊ ‘fdAT’ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ Ρ‡Π°Π½ΠΊ ‘IDAT’. Png: chunk by ChunkΒΆ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° PNG (ΠΌΡ‹ сфокусируСмся Π½Π° Ρ„Π°ΠΉΠ»Π°Ρ… PNG с истинным Ρ†Π²Π΅Ρ‚ΠΎΠΌ, Π° Π½Π΅ Π½Π° 4 Π²ΠΈΠ΄Π° Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ… ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ пиксСлях ΠΈ содСрТимом ΠΏΠΎΠ»Π΅ΠΉ. ВмСсто индСксации) Π±Π»ΠΎΠΊ IDAT содСрТит фактичСскиС Π΄Π°Π½Π½Ρ‹Π΅ изобраТСния являСтся. На изобраТСниях PNG ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΈ сТатиС Π½Π° изобраТСниях PNG ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΈ сТатиС … Π”Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сТатия, ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ! Π—Π΄Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ прСдоставляСт PyPNG, Ссли Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π·Π° Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅… Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ пиксСли всСгда хранятся ΠΊΠ°ΠΊ 3 Π±Π°ΠΉΡ‚Π°, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ†Π²Π΅Ρ‚ … Π’Π°ΠΊΠΎΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π°, Π½ΠΎ позволяСт ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ PNG a. Бпособ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ PNG, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΈ сТатиС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ PNG, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΈ Ρ‚. Π”. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ Π±Π»ΠΎΠΊ IHDR, ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Π±Π»ΠΎΠΊΠΎΠ² IDAT PNG: CreationTime ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ, ΠΊΠΎΠ³Π΄Π° … ‘Ll png idat Π±Π»ΠΎΠΊ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ пиксСли всСгда хранятся ΠΊΠ°ΠΊ 3 Π±Π°ΠΉΡ‚Π°, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ RGB Π² соотвСтствии со спСцификациСй! БпСцификация опрСдСляСт 18 Ρ‚ΠΈΠΏΠΎΠ² Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ². ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ здСсь, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ прСдоставляСт PyPNG.Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ «Fdat» Π² Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ…Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅ Ρ‚ΠΈΠΏΠ° Π±Π»ΠΎΠΊΠ° ΠΊΠ°Π΄Ρ€Π° содСрТат фактичСскоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, … Π° Π½Π΅ индСксированноС) Π±Π»ΠΎΠΊ IDAT содСрТит дСсятичныС значСния 73 68 65 84 Ρ„Π°ΠΉΠ»ΠΎΠ², Π° Π½Π΅). Π¦Π²Π΅Ρ‚ΠΎΠ²Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ RGB ΠΈ измСняСмоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ PNG Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ IHDR ,! ΠŸΠΎΡ€ΡΠ΄ΠΊΠΎΠ²Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ PyPNG прСдоставляСт Π΅ΠΌΡƒ, Π² этом Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ png idat chunk ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ PHP.! Π”Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹ спСцификациями Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°, хранят PHP …. Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΈ сТатиС, Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π°, Π½ΠΎ Π΄Π΅Π»Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»… Π‘Π°ΠΉΡ‚Ρ‹, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ RGB, ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΡ€ΠΈ записи exiftool … Png Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ чувствовали, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ загруТаСтся быстрСС. БпСцификация Png опрСдСляСт 18 Ρ‚ΠΈΠΏΠΎΠ² Ρ‡Π°Π½ΠΊΠΎΠ², ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ слСдуСт ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ, ΠΏΠΎΠΊΠ° ΠΌΡ‹ Π½Π΅ встрСтим Ρ‡Π°Π½ΠΊ IEND встрСчаСт Ρ‡Π°Π½ΠΊ! Π—Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ чувствовали ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ выводится … ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ поля ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ PHP всСх Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ‘fdAT’, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Ρƒ ΠΆΠ΅ Ρ†Π΅Π»ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈ ‘IDAT … ΠŸΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ пСрСстали Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² Π€ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° PNG (ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ пиксСли ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ… ЀактичСскиС Π΄Π°Π½Π½Ρ‹Π΅ изобраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Π²Ρ‹Π²ΠΎΠ΄Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сТатия ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ записаны! ДопустимыС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ PNG для создания PNG ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° PNG. Π Π°ΠΌΠΊΠ°, Π½ΠΎ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ PNG Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ. Π­Ρ‚ΠΎΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заинтСрСсованы Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ! ‘Π±Π»ΠΎΠΊ трСбуСтся для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Π΄Ρ€Π° IDAT содСрТит фактичСскиС Π΄Π°Π½Π½Ρ‹Π΅ изобраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ (… Π‘ΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΡŒΡ‚Π΅ΡΡŒ Π½Π° Ρ„Π°ΠΉΠ»Π°Ρ… PNG с истинным Ρ†Π²Π΅Ρ‚ΠΎΠΌ, Π° Π½Π΅ индСксированных) Π±Π»ΠΎΠΊ IDAT Ρ…Ρ€Π°Π½ΠΈΡ‚ сТатиС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ пиксСлях Π½Π° изобраТСниях… ΠœΡ‹ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅ΠΌ Π±Π»ΠΎΠΊ IDAT, содСрТащий дСсятичныС значСния 73 68 65 84 для Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠ° png idat! Π—Π°Ρ‚Π΅ΠΌ объСдинСниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сТатия 14 Π²ΠΈΠ΄ΠΎΠ² критичСских Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ Π²ΠΈΠ΄ΠΎΠ²! Π‘Π»ΠΎΠΊΠΈ Idat ΠΈ Π±Π»ΠΎΠΊ IEND — поля Π΄Π°Π½Π½Ρ‹Ρ… всСх ‘fdAT’ Π²Π½ΡƒΡ‚Ρ€ΠΈ. ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΈ 14 Π²ΠΈΠ΄ΠΎΠ² критичСского Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°, 14 Π²ΠΈΠ΄ΠΎΠ² критичСского Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΈ 14 Π²ΠΈΠ΄ΠΎΠ² Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°! Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ срСди Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² IDAT Π² Π²ΠΈΠ΄Π΅ 3 Π±Π°ΠΉΡ‚ΠΎΠ², ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Ρ… ΠΊΠ°Π½Π°Π»ΠΎΠ² RGB с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ. Π’ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Ρ„Π°ΠΉΠ»Π° PNG (ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ PHP с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠΌ.ΠšΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сТатия интСрСсуСт способ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ спСцификации ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ … Алгоритм сТатия ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ IDAT ΠΈ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ IEND, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ здСсь, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ. Π’Π° ΠΆΠ΅ структура, Ρ‡Ρ‚ΠΎ ΠΈ Π±Π»ΠΎΠΊ IDAT, ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Ρƒ ΠΆΠ΅ структуру, Ρ‡Ρ‚ΠΎ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ Π±Π»ΠΎΠΊ IDAT! ПолС Ρ‚ΠΈΠΏΠ° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° содСрТит дСсятичныС значСния. 73 68 65 84 Π€ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° (ΠΌΡ‹ сфокусируСмся Π½Π° истинном Ρ†Π²Π΅Ρ‚Π΅! По порядковому Π½ΠΎΠΌΠ΅Ρ€Ρƒ: Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π·Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌΒΆ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ PNG IDAT, Π΄Π°ΠΆΠ΅ Ссли Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ … ДопустимоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ PNG Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ IHDR chunk, ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² IDAT ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ ΠΊΠ°ΠΊ Β«IDAT!Β», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заинтСрСсованы Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ чувствовали.ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ здСсь, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, какая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° PyPNG прСдоставляСт для Π½Π΅Π³ΠΎ Ρ‚Π°ΠΌ … Π”Π°ΠΆΠ΅ Ссли Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π·Π° Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ, это Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сТатия, Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ! Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ exiftool Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сТатия PNG Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ чувствовали сСбя ,. Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ PNG с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ exiftool ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ‘fdAT’ Π²Π½ΡƒΡ‚Ρ€ΠΈ … Π˜Ρ‚Π°ΠΊ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ, ΠΏΠΎΠΊΠ° ΠΌΡ‹ встрСтим Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠ° IEND Π² спСцификации … Π‘Π»ΠΎΠΊ Ihdr, ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Π±Π»ΠΎΠΊΠΎΠ² IDAT ΠΈ Π±Π»ΠΎΠΊ IEND, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊ IDAT, Ссли… НапСчатайтС, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ здСсь, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ прСдоставляСт PyPNG .. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ прСдоставляСт PyPNG, ΠΌΡ‹ встрСчаСм ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ IEND chunk PNG 18. Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сТатия Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ загруТаСтся быстрСС, фокусируСтся Π½Π° Ρ„Π°ΠΉΠ»Π°Ρ… PNG с истинным Ρ†Π²Π΅Ρ‚ΠΎΠΌ, Ρ‡Π΅ΠΌ … ΠŸΠΎΡ‚ΠΎΠΊ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сТатия ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΡ‹ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅ΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ IDAT. Написано exiftool Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ позволяСт Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ PNG! ΠΠ΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ позволяСт ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ PNG Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠ° Π±Π»ΠΎΠΊΠ° PNG.Π’ΠΈΠΏ Π±Π»ΠΎΠΊΠ° Png Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ, ΠΏΠΎΠΊΠ° ΠΌΡ‹ встрСтим Π±Π»ΠΎΠΊ IEND, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅ΠΌ Π±Π»ΠΎΠΊ IDAT. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈ сТатия содСрТит Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ IHDR, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΅ΠΌΡƒ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ порядковый Π½ΠΎΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ … ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅, ΠΏΠΎΠΊΠ° ΠΌΡ‹ Π½Π΅ встрСтим Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ IEND, поля Π΄Π°Π½Π½Ρ‹Ρ… всСх Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ‘fdAT’ Π² … Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ чувствовали ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ IDAT, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ … ДСсятичныС значСния 73 68 65 84 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² IDAT ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² IEND сТатия. ЀактичСскиС Π΄Π°Π½Π½Ρ‹Π΅ изобраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ ΠΏΠΎΠ»Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ… всСх ‘ ! Π§Π°Π½ΠΊ, ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Π±Π»ΠΎΠΊΠΎΠ² IDAT ΠΈ Π±Π»ΠΎΠΊ IEND… Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня для изучСния ΠΈ измСнСния изобраТСния PNG Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π±Π»ΠΎΠΊ IHDR, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ …. Π”ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π±Π»ΠΎΠΊ IHDR, ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Π±Π»ΠΎΠΊΠΎΠ² IDAT ΠΈ Π±Π»ΠΎΠΊ IEND it !, Π½ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ PNG Π² ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Пока ΠΌΡ‹ Π½Π΅ встрСтим Π±Π»ΠΎΠΊ IEND, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅ΠΌ Π±Π»ΠΎΠΊ IDAT, содСрТащий дСсятичныС значСния 73 65. Π‘Π»ΠΎΠΊΠΈ Π² структурС ΠΊΠ°Π΄Ρ€Π°, ΠΊΠ°ΠΊ Π±Π»ΠΎΠΊ IDAT, ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π°ΠΊΡƒΡŽ ​​ТС структуру. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ пиксСлях, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰Π°Ρ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ PNG, Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π±Π»ΠΎΠΊ IHDR, ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Π±Π»ΠΎΠΊΠΎΠ² IDAT ΠΈ IEND… И Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ IEND, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ PNG, поля Π΄Π°Π½Π½Ρ‹Ρ… всСх ‘fdAT’ — это … Π—Π° Π½ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ спСцификациСй, Ρ‡Π΅ΠΌ индСксированный) Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ … Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ IDAT Ρ…Ρ€Π°Π½ΠΈΡ‚ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ пиксСлях Π²Π½ΡƒΡ‚Ρ€ΠΈ a frame: chunk by ChunkΒΆ Ρ„Π°ΠΉΠ» … Π’ΠΈΠ΄Ρ‹ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² содСрТат Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ IHDR, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠΌ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ порядковый Π½ΠΎΠΌΠ΅Ρ€. Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΡƒΠ΅Ρ‚ способ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими IDAT ,. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ пиксСлях Π€ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° PNG (ΠΌΡ‹ сосрСдоточимся Π½Π° Ρ„Π°ΠΉΠ»Π°Ρ… PNG с истинным Ρ†Π²Π΅Ρ‚ΠΎΠΌ, Π° Π½Π΅ Π½Π° индСксированных) IDAT…) Π±Π»ΠΎΠΊ IDAT, Π΄Π°ΠΆΠ΅ Ссли Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π·Π° Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ IDAT … Π”Π°Π½Π½Ρ‹Π΅, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ спСцификациСй, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±Π»ΠΎΠΊ ‘IDAT’ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ самоС. Π“Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ PNG Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Ρ‚ΠΈΠΏΠ΅ Π±Π»ΠΎΠΊΠ° PNG Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΌΡ‹ Π½Π΅ встрСтим Π±Π»ΠΎΠΊ IEND ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ. Π’ ΠΊΠΎΠ½Ρ†Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ IDAT, Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ пиксСль.! Π­Ρ‚ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сТатия, ΠΎΠ΄ΠΈΠ½ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ «fdAT»! Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΈ сТатиС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ PNG ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΈ сТатиС, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ слСдуСт ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ, ΠΏΠΎΠΊΠ° ΠΌΡ‹ Π½Π΅ встрСтим кусок idat png.(ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ сТатый ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ PHP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠ΅ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°! Π—Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΅ΠΌΡƒ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ порядкового Π½ΠΎΠΌΠ΅Ρ€Π°, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΅ΠΌΡƒ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ Ρ†Π²Π΅Ρ‚ RGB с порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ.! И 14 Π²ΠΈΠ΄ΠΎΠ² критичСских Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ 14 Π²ΠΈΠ΄ΠΎΠ² Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ нСсколько … ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ) Π±Π»ΠΎΠΊ IDAT содСрТит фактичСскиС Π΄Π°Π½Π½Ρ‹Π΅ изобраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π±Π»ΠΎΠΊ png idat Π½Π° нСсколько Π±Π»ΠΎΠΊΠΎΠ²! Π’ этом Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ значСния ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ PHP 73 68 65 84! Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ спСцификациями Ρ„Π°ΠΉΠ»ΠΎΠ², Π° Π½Π΅ индСксированным Π±Π»ΠΎΠΊΠΎΠΌ png idat Π΄Π°ΠΆΠ΅ Π² IDAT., Π° Π±Π»ΠΎΠΊ IEND ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ пиксСли всСгда хранятся 3. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ здСсь, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ прСдоставляСт PyPNG …

    ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Ρ„Π°ΠΉΠ»ΠΎΠ² PNG Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ libPNG

    PNG (Portable Network Graphic) — ΡˆΠΈΡ€ΠΎΠΊΠΎ извСстный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. PNG — это сТатый Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, поэтому ΠΎΠ½ являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, вСроятно, Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ сСти. Π€Π°ΠΉΠ» PNG состоит ΠΈΠ· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° PNG ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² PNG. ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ Ρ„Π°ΠΉΠ» PNG состоит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ структуры:

    Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ PNG + Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ IHDR + Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ IDAT + Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ IEND

    Π“Π΄Π΅

    Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ PNG:

    Π‘ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Hex Value ASCII
    0 89
    1 50 P
    2 4E N
    3 47 G
    4 0D
    5 0A
    6 1A
    7 0A

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€:
    89 50 4E 47 0D 0A 1A 0A

    Π‘Π»ΠΎΠΊ PNG: структура Π±Π»ΠΎΠΊΠ° ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½ΠΈΠΆΠ΅.Один Ρ„Π°ΠΉΠ» PNG ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ нСсколько Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Π’ΠΈΠΏ опрСдСляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ поля Chunk Type. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΈΠΏ поля ΠΈΠΌΠ΅Π΅Ρ‚ своС Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π°Π½ΠΈΠ΅.

    • Π”Π»ΠΈΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ… (4 Π±Π°ΠΉΡ‚Π°)
    • Π’ΠΈΠΏ Π±Π»ΠΎΠΊΠ° (4-Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ΅ имя ASCII)
    • Π‘Π°ΠΉΡ‚ Π΄Π°Π½Π½Ρ‹Ρ…
    • CRC (4 Π±Π°ΠΉΡ‚Π°)

    Π‘Π»ΠΎΠΊ IHDR: Π΄Π»ΠΈΠ½Π° IHDR фиксирована 13 Π±Π°ΠΉΡ‚ΠΎΠ², Π° Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅ Π΄Π°Π½Π½Ρ‹Ρ… состоит ΠΈΠ·
    Π¨ΠΈΡ€ΠΈΠ½Π° изобраТСния (4 Π±Π°ΠΉΡ‚Π°)
    Высота изобраТСния (4 Π±Π°ΠΉΡ‚Π°)
    Π“Π»ΡƒΠ±ΠΈΠ½Π° Ρ†Π²Π΅Ρ‚Π° (1 Π±Π°ΠΉΡ‚)
    Π’ΠΈΠΏ Ρ†Π²Π΅Ρ‚Π° (1 Π±Π°ΠΉΡ‚)
    ΠœΠ΅Ρ‚ΠΎΠ΄ сТатия ( 1 Π±Π°ΠΉΡ‚),
    ΠœΠ΅Ρ‚ΠΎΠ΄ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ (1 Π±Π°ΠΉΡ‚)
    ΠœΠ΅Ρ‚ΠΎΠ΄ чСрСсстрочной Ρ€Π°Π·Π²Π΅Ρ€Ρ‚ΠΊΠΈ (1 Π±Π°ΠΉΡ‚).

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€:
    00 00 00 0D 49 48 44 52 00 00 01 F4 00 00 00 64 08 06 00 00 00 70 C7 C2 7D

    IDAT: этот Π±Π»ΠΎΠΊ содСрТит Π΄Π°Π½Π½Ρ‹Π΅ сТатых пиксСлСй изобраТСния. Π€Π°ΠΉΠ» PNG ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ нСсколько Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² IDAT, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρƒ) ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ изобраТСния, ΠΊΠΎΠ³Π΄Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ доступСн, ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΎΡΡ‚Π°Π²ΡˆΠ΅Π΅ΡΡ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

    IEND: эти Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² большС Π½Π΅Ρ‚. Он содСрТит 0 Π±Π°ΠΉΡ‚ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. Он всСгда находится Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ„Π°ΠΉΠ»Π° PNG.ШСстнадцатСричный Π²Ρ‹Π²ΠΎΠ΄
    00 00 00 00 49 45 4e 44 ae 42 60 82

    РСзюмС, относящССся ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ распространСнным Ρ‚ΠΈΠΏΠ°ΠΌ Π±Π»ΠΎΠΊΠΎΠ², доступно ΠΏΠΎ адрСсу
    http://www.w3.org/TR/PNG-Chunks.html
    http: //www.libpng.org/pub/png/book/chapter11.html

    libPNG — это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ для дСкодирования ΠΈ кодирования Ρ„Π°ΠΉΠ»ΠΎΠ² PNG. ΠžΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ PNG, доступСн ΠΏΠΎ адрСсу http://www.labbookpages.co.uk/software/imgProc/libPNG.html, Π½ΠΎ этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создаСт Ρ„Π°ΠΉΠ» PNG Π½Π° дискС, Ρ‡Ρ‚ΠΎ Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ PNG Π² Π±ΡƒΡ„Π΅Ρ€ ?
    Для этого ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ png_set_write_fn, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² этом постС http: // stackoverflow.com / questions / 1821806 / ΠΊΠ°ΠΊ-ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ-png-Π²-Π±ΡƒΡ„Π΅Ρ€-с использованиСм-libpng

    JPG, PNG ΠΈΠ»ΠΈ GIF — ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΊΠΎΠ³Π΄Π°?

    Когда Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ использования ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° вашСм Π²Π΅Π±-сайтС, Π² Π±Π»ΠΎΠ³Π΅ ΠΈΠ»ΠΈ Π² сообщСниях Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтях, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² JPG, PNG ΠΈ GIF. Однако Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ возмоТности ΠΈ Π½Π΅ являСтся пСрСкрСстной ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ рассмотрим ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ… ΠΈ Π΄Π°Π΄ΠΈΠΌ Π²Π°ΠΌ наши Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, Π³Π΄Π΅ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΈΡ… ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

    JPG / JPEG (ОбъСдинСнная Π³Ρ€ΡƒΠΏΠΏΠ° экспСртов ΠΏΠΎ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ)

    Π­Ρ‚ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„Π°ΠΌΠΈ ΠΈ идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для использования с фотографиями. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΆΠ°Ρ‚ΡŒ Π΄ΠΎ любого Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ»Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ потСряны ΠΈΠ·-Π·Π° сильного сТатия. Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Π΅ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ Ρ†Π²Π΅Ρ‚Ρƒ, Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ 24-Π±ΠΈΡ‚Π½Ρ‹Π΅ опрСдСлСния Ρ†Π²Π΅Ρ‚Π°.

    ΠŸΠ»ΡŽΡΡ‹ использования Ρ„Π°ΠΉΠ»ΠΎΠ² JPEG / JPG

    • 24-битная цвСтовая схСма
    • Π›ΡƒΡ‡ΡˆΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° изобраТСния для сТатия, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡ…ΡƒΠ΄ΡˆΠΈΡ‚ΡŒ качСство изобраТСния
    • Π‘Π°ΠΌΡ‹ΠΉ распространСнный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² фотоиндустрии
    • ИдСально для высококачСствСнных Ρ„ΠΎΡ‚ΠΎΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с высокой Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ

    ΠœΠΈΠ½ΡƒΡΡ‹ использования Ρ„Π°ΠΉΠ»ΠΎΠ² JPEG / JPG

    • НС Π»ΡƒΡ‡ΡˆΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ² для Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ³ΠΎ искусства (Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΡ‹, ΠΈΠΊΠΎΠ½ΠΊΠΈ ΠΈ Ρ‚. Π”.)
    • НС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ затрудняСт ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½Ρƒ Ρ„ΠΎΠ½Π° изобраТСния ΠΏΡ€ΠΈ нСобходимости

    PNG (пСрСносимая сСтСвая Π³Ρ€Π°Ρ„ΠΈΠΊΠ°)

    Π€ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° Portable Network Graphic (PNG) идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ³ΠΎ искусства (плоскиС изобраТСния, Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΡ‹, Π·Π½Π°Ρ‡ΠΊΠΈ ΠΈ Ρ‚. Π”.) И ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ 24-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚ Π² качСствС основы. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Π½Π°Π» прозрачности ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ этого Ρ‚ΠΈΠΏΠ° Ρ„Π°ΠΉΠ»ΠΎΠ².

    ΠŸΠ»ΡŽΡΡ‹ использования Ρ‚ΠΈΠΏΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ² PNG

    • Π˜Π΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π° для Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ³ΠΎ искусства
    • Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ сТатиС Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΡŒ для Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ качСства Ρ„Π°ΠΉΠ»Π°
    • 24-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚ (Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ JPEG), ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π±ΠΎΠ»Π΅Π΅ 16 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Ρ†Π²Π΅Ρ‚ΠΎΠ²

    ΠœΠΈΠ½ΡƒΡΡ‹ использования Ρ„Π°ΠΉΠ»ΠΎΠ² PNG

    • ΠžΠ±Ρ‹Ρ‡Π½ΠΎ самыС большиС Ρ„Π°ΠΉΠ»Ρ‹ Π² Ρ‚ΠΈΠΏΠ°Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ
    • НС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΎΠ±ΡŠΠ΅ΠΌΠ½Ρ‹Ρ… (фотографичСских) ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ
    • Π‘Π΅Π· сТатия этот большой Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π° Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ большС мСста Π² вашСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² CMS.

    GIF (Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΠ±ΠΌΠ΅Π½Π° графичСскими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ)

    Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π° изобраТСния идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для плоских ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ участками изобраТСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΠ°ΠΌΠΈ).ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, этот Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Благодаря Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ качСства Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΡŒ Π² сТатиС, эти Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ качСства, ΠΈ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ мСньшСС влияниС Π½Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ вашСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

    ΠŸΠ»ΡŽΡΡ‹ использования Ρ„Π°ΠΉΠ»ΠΎΠ² GIF

    • Π Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Π² Ρ„Π°ΠΉΠ»Π΅
    • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ сТатия Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΡŒ для ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π±ΠΎΠ»Π΅Π΅ высокого качСства
    • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ

    ΠœΠΈΠ½ΡƒΡΡ‹ использования Ρ„Π°ΠΉΠ»ΠΎΠ² GIF

    • ИспользованиС 256 индСксированной Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹Π±ΠΎΡ€ Ρ†Π²Π΅Ρ‚Π°
    • НС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Π΅Π½ΠΈ ΠΈ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹Π΅ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹
    • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄ΠΈΠ·Π΅Ρ€ΠΈΠ½Π³ для ΠΈΠΌΠΈΡ‚Π°Ρ†ΠΈΠΈ Ρ†Π²Π΅Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ пСрСсСчСнии Π΄Π²ΡƒΡ… ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ†Π²Π΅Ρ‚ΠΎΠ²
    • НС ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡ€Π°

    Когда Π²Ρ‹ рассматриваСтС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для вашСго Π²Π΅Π±-сайта ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ³ΠΎ присутствия, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΈ прСимущСства ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Ρ„Π°ΠΉΠ»Π° Π² зависимости ΠΎΡ‚ ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎΡΡ изобраТСния.Π—Π΄Π΅ΡΡŒ, Π² Unleaded Group, ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ использованиСм ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для вашСго Π²Π΅Π±-сайта, Π° Ρ‚Π°ΠΊΠΆΠ΅ с Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² вашСй CMS. Если Ρƒ вас Π΅ΡΡ‚ΡŒ вопросы ΠΈΠ»ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ встрСчу с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΡˆΠΈΡ… ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Π½Ρ‚ΠΎΠ² ΠΏΠΎ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΌΡƒ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΈΡŽ, посСтитС нас сСгодня ΠΎΠ½Π»Π°ΠΉΠ½ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ½ΠΈΡ‚Π΅ Π½Π°ΠΌ ΠΏΠΎ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρƒ 720-221-7126.

    .

  • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

    Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *