Färgstyrning i webbläsare

Även om det inte är allmänt känt, och kanske heller inte så väl använt, så använder faktiskt även webbläsarna en färgstyrning. Tyvärr har man inte så stora möjligheter att påverkar inställningarna för färghanteringen. Men å andra sidan är det något som man inte heller borde bry sig om som slutanvändare.

Först måste vi reda ut hur de olika läsarna hanterar bilder och färger. Vi kan nämligen lägga färger i två olika kategorier. Dels färger i fotografiska bilder, dels färger som genereras av läsaren (bakgrundsfärger, textfärg osv).

Safari (och läsare baserade på Webkit) använder Core image (Quicktime) för bildvisning. Core image har fullt stöd för färgstyrning.

Firefox och övriga Mozillaläsare använder en egen motor för gif, jpeg och png. Övriga (som tiff exempelvis) anropar den QT-plugin för visning. Det här medför att i de fall där QT används finns stöd för färgstyrning. Annars inte.

Internet Explorer för mac använder QuickDraw GX som är den äldre varianten av grafikmotor i Mac OS X. Den används huvudsakligen av carbon-program. Även QuickDraw har stöd för färgstyrning, om än mer primitivt än Core image.

Internet Explorer för Windows använder en variant av Graphics Rendering Engine, som är systemets grafikmotor. Här har vi heller ingen färgstyrningsmöjlighet. Trots att Windows har en begränsad implementering av färghantering.

Det innebär att operativsystemets inställningar för färgstyrning slår igenom i Safari och IE/mac men inte i Firefox och IE/win. En bild som är taggad med en ICC-profil kommer därför att kompenseras mot den profilen i Safari men kommer att visas med ”standardfärg” i FF utan kompensation. Färger som skapas i HTML kommer att hamna i den förvalda arbetsfärgrymden som läsaren använder.

Standardfärg för läsare utan koppling till systemets färghantering är sRGB (webb-standardprofilen i JPEG enligt IEC 61966-2.1).

Core image i Mac OS X använder en standardprofil som heter Generisk RGB som förvald dokumentprofil för bilder och färger utan egen profil. Den profilen påminner mycket om sRGB, men har ett gammavärde satt till 1,8 (standard på mac). Både Adobe RGB och sRGB har ett gamma på 2,2 (TV-standard) vilket ignoreras av Core image och alltså inte kompenseras för. Renderingsmetoden i systemet är ställd till att bevara färgnummer, istället för att bevara utseende. Därför uppstår en färgförskjutning när man jämför bilder och färger i de olika läsarna.

Slutsatsen är alltså att om du inte använder någon inbakad profil kommer både bilden och HTML-färgen att använda läsarens/bildmotorns standardprofil som källprofil.

Exempel

Här har jag lagt en grå bild med en grå platta ovanpå. Texten i tonplattan beskriver profilen bilden har inbakad. Det är samma färgvärden i alla bilderna och tonplattorna. Det här visar hur läsarna renderar gråtonen i olika gammavärden.

Safari

Safaris färghantering

Firefox

Firefox färghantering

Så hur löser man det här?

• Strunta i det. Ingen sitter i alla fall och jämför utseendet mellan bilderna i två läsare samtidigt (förutom du såklart). Se bara till att färgerna inte blir för ljusa för gamma 2.2 i Windows.

• Tvinga fram samma typ av rendering genom att använda sRGB till alla bilder och bifoga profilen i bilden. Då kommer sRGB att användas i Safari vilket gör att bilderna kommer se likadana ut i alla läsarna.

Tyvärr går det inte att bifoga en ICC-profil till HTML-färger, så enda sättet där är att istället använda en bakgrundsfärg till tonplattor på sajten. Alltså att ersätta HTML-färger med bilder med bifogade profiler i.

Skriv en kommentar