Problēmas apraksts

Šoreiz nerunāšu par PNG caurspīdīguma problēmu uz IE6 pārlūka, bet gan
par tādu varbūt mazāk populāru, bet kaitinošu problēmu, kas ietekmē gan IE6,
gan IE7. Abi šie pārlūki reizēm nepareizi attēlo PNG attēlu krāsu toņus.

Mazs piemērs (Šis attēls ir salikts kopā no diviem.
Pa kreisi ir parasts GIF fails, bet pa labi PNG). Uz FF
un Operas nevajadzētu redzēt atšķirību, bet uz IE diezgan labi var redzēt, ka
kreisās puses krāsas tonis atšķiras no labās puses toņa. Labā puse ir nedaudz
tumšāka.

Tiem, kam nav iespēju apskatīt caur IE, ekrānšāviņš:

 

Kāpēc tā notiek ?

PNG formāts atbalsta Gammas korekciju.
Gammas korekcija mēģina nodrošināt, lai attēls rādītos pēc iespējas
vienādākā tonī gan uz dažādām iekārtām (mac, pc u.c.), gan starp dažādām
programmām. Reāli gammas korekcija PNG failā izpaužas vienkārši kā ciparisks
koeficients, kas programmai (vai jebkam citam, kas attaino PNG) būtu jāņem
vērā, rēķinot toņu spilgtumu. Tas tā - rupji runājot un neiedziļinoties
pilnīgā darbības mehānismā.

Problēma rodas tad, kad IE nepareizi interpretē šo koeficientu.

Risinājums

Risinājums ir izdzēst no PNG faila attiecīgo koeficientu. To
var izdarīt pavisam vienkārši. Droši vien pastāv daudz dažādu progammu, kas
ļauj to izdarīt, bet es izcelšu TweakPNG. Tā ir bezmaksas, ir pavisam maziņa
un strādā nevainojami. Ja kādam tas ir pluss, tad pieminēšu, ka tā
nav arī jāinstallē.

Tātad lejupielādējam TweakPNG.
Pēc attarhivēšanas atveram Tweakpng.exe, un ar File->Open atveram
PNG failu, ko gribam patīrīt. Tam vajadzētu izskatīties aptuveni šādi:

Mums interesē Chunk ar nosaukumu gAMA.
Nospiežam uz tā ar labo peles pogu un no izlecošās izvēlnēs izvēlamies
Delete. Tas arī viss. Saglabājam failu un veram programmu ciet.

Lūk atkal divi faili: pa kreisi GIF, pa labi PNG. Atšķirība toņa spilgtumā
vairs nav redzama: