How do I index a PNG?

Reducer Filstørrelse med Indekseret PNG

I en verden hvor hastighed på internettet er altafgørende, spiller billeder en enorm rolle for, hvor hurtigt en webside indlæses. Store billedfiler kan bremse selv den hurtigste forbindelse og frustrere besøgende. Som fotograf eller webdesigner er det derfor essentielt at kende til metoder, der kan reducere filstørrelser uden at ofre for meget kvalitet. En af de mest effektive teknikker for PNG-billeder er indeksering.

Før vi dykker ned i indeksering, lad os kort genopfriske de mest almindelige billedformater på nettet:

JPEG: Dette format bruger tabsgivende komprimering, hvilket betyder, at noget billeddata går tabt under komprimeringen. Fordelen er meget små filstørrelser, men det er bedst egnet til fotos med mange farveovergange. Det fungerer dårligt til grafik, tegninger og streggrafik, hvor skarpe linjer og rene farver er vigtige, da komprimeringen kan skabe artefakter og sløring.

What is indexed color mode?
In computing, indexed color is a technique to manage digital images' colors in a limited fashion, in order to save computer memory and file storage, while speeding up display refresh and file transfers. It is a form of vector quantization compression.

GIF: GIF bruger tabsløs komprimering og understøtter en farvepalet på maksimalt 256 farver samt én gennemsigtig farve. Under lignende forhold (indekserede farver) har GIF en lavere komprimeringsrate sammenlignet med PNG. GIF's primære niche i dag er simple animationer.

PNG: PNG betragtes ofte som efterfølgeren til GIF. Det understøtter tabsløs komprimering og kan håndtere både indekserede farver (op til 256 eller mere afhængigt af bitdybde, men ofte begrænset til 256 for kompatibilitet og størrelse) og ægte farver (millioner af farver). PNG understøtter både simpel gennemsigtighed (én farve er helt gennemsigtig) og alpha-gennemsigtighed (delvis gennemsigtighed, f.eks. til skygger). PNG er ideelt til grafik, logoer, tegninger og billeder med tekst, hvor skarphed og rene farver er vigtige. Til fotos er komprimeringen dog generelt mindre effektiv end JPEG.

Indholds

Hvad er Indeksering af PNG-billeder?

Et PNG-billede i 'ægte farver' (true color) gemmer information om farven for hver enkelt pixel uafhængigt. Dette giver mulighed for et meget bredt spektrum af farver og nuancer. Ved at konvertere et PNG-billede til 'indekserede farver' opretter man en begrænset farvepalet – en liste over de farver, der rent faktisk bruges i billedet (eller et udvalg af dem). Hver pixel i billedet gemmer derefter ikke sin fulde farveinformation, men i stedet et *indeks* – et nummer – der refererer til en farve i denne palet. Hvis din palet kun indeholder 256 farver, behøver du kun at gemme et 8-bit nummer pr. pixel i stedet for de 24 bits, der typisk bruges til ægte farver. Denne reduktion i data pr. pixel er kernen i, hvorfor indeksering kan reducere filstørrelsen så drastisk.

Sådan Fungerer Indeksering i Praksis (Konceptuelt)

Processen med at indeksere et PNG-billede foregår typisk i billedredigeringssoftware. Du ændrer billedets farvetilstand fra 'RGB' (ægte farver) til 'Indekseret'. Når du gør dette, skal softwaren beslutte, hvilke farver der skal inkluderes i den begrænsede palet, og hvordan farver i originalbilledet, der ikke er i paletten, skal repræsenteres.

Der er to primære parametre, du kan styre under indekseringen:

1. Antallet af Farver: Du kan vælge, hvor mange farver paletten maksimalt må indeholde. Jo færre farver, jo mindre bliver filen, men jo større er risikoen for synlig kvalitetsforringelse, især i billeder med mange bløde farveovergange eller et bredt farvespektrum.

2. Dithering:Dithering er en teknik, der forsøger at simulere farver, der ikke er i paletten, ved at placere prikker af forskellige farver fra paletten tæt på hinanden. På afstand blander disse prikker sig optisk og giver indtryk af en farve, der ikke findes i paletten. Dithering kan hjælpe med at bevare udseendet af gradienter og farveovergange i billeder med begrænsede farver, men det kan også øge filstørrelsen lidt sammenlignet med indeksering uden dithering, og det kan introducere en 'støjet' eller 'grynede' tekstur.

Indeksering uden Gennemsigtighed

Det mest ligetil tilfælde for indeksering er billeder uden nogen form for gennemsigtighed. Her er fokus udelukkende på at reducere antallet af farver. Konvertering fra ægte farver til indekserede farver kan give en meget markant reduktion i filstørrelse. Valget mellem at bruge eller ikke bruge dithering, samt antallet af farver i paletten, vil påvirke både filstørrelsen og det visuelle resultat.

For simple billeder med store, ensfarvede områder eller få farver (f.eks. logoer eller ikoner) er det ofte bedst at undgå dithering. Dette resulterer i de mindste filer og bevarer de rene farveflader. For mere komplekse billeder, der stadig ikke er fotos, men måske har simple gradienter eller flere farver, kan dithering hjælpe med at bevare et bedre udseende, selvom filen bliver marginalt større end uden dithering.

Her er et eksempel på komprimeringsresultater med forskellige indstillinger (baseret på typiske resultater, tallene er illustrative baseret på den leverede data):

Billedtype Indstillinger Filstørrelse (ca.)
PNG Original Ægte farver 4,6 KB
PNG Indekseret 255 farver, ingen dithering 3,1 KB
PNG Indekseret 255 farver, med dithering 4,0 KB
GIF Indekseret 255 farver, ingen dithering 3,7 KB
PNG Indekseret 127 farver, ingen dithering 2,3 KB
PNG Indekseret 63 farver, ingen dithering 1,7 KB
JPEG Kvalitet 90 2,0 KB

Som tabellen viser, er filstørrelsen reduceret dramatisk i alle indekserede PNG-tilfælde sammenlignet med det originale ægte farve PNG. Reduktionen er mest markant med færre farver og uden dithering. Sammenlignet med JPEG (kvalitet 90), kan indekseret PNG med meget få farver blive mindre, men ofte vil JPEG være mindre for fotografiske billeder. Det er vigtigt at bemærke, at en drastisk reduktion i antallet af farver (f.eks. til 63) eller brugen af JPEG med høj komprimering (lav kvalitet) også kan medføre en synlig forringelse af billedkvaliteten.

Valget af indstillinger afhænger derfor altid af det specifikke billede og den acceptable balance mellem filstørrelse og billedkvalitet. For simple grafikker er indekseret PNG med få farver uden dithering ofte det bedste valg. For mere komplekse grafikker kan flere farver og potentielt dithering være nødvendigt for at bevare kvaliteten, selvom filen så bliver større.

Indeksering med Simpel Gennemsigtighed

Når et PNG-billede indeholder simpel gennemsigtighed (hvor en farve er fuldt ud gennemsigtig, som i GIF), kan indeksering stadig anvendes effektivt. Processen er den samme: billedet konverteres til en begrænset farvepalet. Dog kan indeksering interagere på uønskede måder med kanter, der bruger antialiasing (en teknik der blødgør kanter ved at blande farverne på objektet med baggrundsfarven ved kanten).

Overvej et simpelt grafisk element med let afrundede hjørner og simpel gennemsigtighed. De afrundede hjørner opnås typisk med antialiasing. Når dette billede indekseres, skal softwaren vælge farver fra paletten til at repræsentere de semi-transparente pixels langs kanten. Uden alpha-gennemsigtighed har indekseret PNG kun fuldt ud gennemsigtige eller fuldt ud dækkende pixels. Dette kan resultere i synlige 'trappetrin' eller uønskede farvekanter (artefakter) langs de tidligere glatte overgange, især ved højere zoomniveauer.

Billedtype Indstillinger Filstørrelse (ca.)
PNG Original Ægte farver, simpel gennemsigtighed 5,2 KB
PNG Indekseret 255 farver, ingen dithering, simpel gennemsigtighed 3,3 KB

I eksemplet med simpel gennemsigtighed ses stadig en god reduktion i filstørrelse ved indeksering. Hvis de afrundede hjørner er meget diskrete, kan resultatet være acceptabelt. Men jo mere markant antialiasing der er, jo mere synlige bliver artefakterne, og simpel indeksering er måske ikke tilstrækkelig til at bevare et tilfredsstillende udseende.

Indeksering med Kompleks Gennemsigtighed (Alpha)

PNG er unikt blandt de mest almindelige webformater ved sin understøttelse af alpha-gennemsigtighed. Dette gør det muligt for pixels at have varierende grader af gennemsigtighed, hvilket er essentielt for bløde skygger, fjerlette kanter og andre komplekse visuelle effekter. Desværre er alpha-gennemsigtighed ikke direkte kompatibel med den traditionelle indekserede farvemodel.

Hvis du forsøger at indeksere et PNG-billede med alpha-gennemsigtighed (f.eks. en grafik med en blød skygge), vil en simpel indeksering typisk ødelægge skyggen og gøre kanterne uskønne, da den ikke kan repræsentere de mellemliggende gennemsigtighedsniveauer. Aktivering af dithering for gennemsigtigheden i denne situation hjælper sjældent og kan endda forværre problemet.

Billedtype Indstillinger Filstørrelse (ca.)
PNG Original Ægte farver, alpha-gennemsigtighed 16,1 KB
PNG Indekseret 255 farver, ingen dithering, simpel gennemsigtighed (ødelagt alpha) 5,5 KB
PNG Indekseret 255 farver, med dithering, simpel gennemsigtighed (ødelagt alpha) 5,7 KB

Indeksering reducerer størrelsen betragteligt, men resultatet for billeder med alpha-gennemsigtighed er ofte uacceptabelt, da den visuelle effekt (skyggen) går tabt.

Løsninger for Kompleks Gennemsigtighed og Indeksering

Hvis du absolut skal reducere størrelsen på et PNG med kompleks gennemsigtighed ved hjælp af indeksering, er der et par arbejdsgange, der kan bruges, selvom de involverer kompromiser:

1. Fjern Gennemsigtighed og Brug Fast Baggrund: Hvis billedet altid skal vises over en ensfarvet baggrund på din webside, kan du fjerne gennemsigtigheden helt. Fyld det gennemsigtige område med den samme farve som websidens baggrund, og gem derefter billedet som et indekseret PNG uden gennemsigtighed. Dette eliminerer problemet med alpha-gennemsigtighed, da den slet ikke gemmes. Filen bliver lille, men billedet kan naturligvis kun bruges på en baggrund af netop den valgte farve.

2. Brug 'Falsk' Gennemsigtighed/Skygge: Dette er en mere avanceret teknik, der forsøger at simulere alpha-gennemsigtighed ved hjælp af indekserede farver og simpel gennemsigtighed. Arbejdsgangen er groft forklaret således:

  • Start med dit originale PNG med alpha-gennemsigtighed.
  • Placer en farvet baggrund (f.eks. den farve websiden vil have) under billedet i dit redigeringsprogram.
  • Flet billedlaget ned på baggrundslaget. Nu er skyggen ikke længere en overgang fra objekt til gennemsigtighed, men en overgang fra objektets farve til baggrundsfarven.
  • Konverter det flettede billede til indekserede farver. Farvepaletten vil nu indeholde farver, der repræsenterer både objektet, baggrunden og gradienten (skyggen) mellem dem.
  • Vælg derefter den specifikke baggrundsfarve i billedet og definer den som den *ene* gennemsigtige farve i det indekserede PNG.

Resultatet er et indekseret PNG med simpel gennemsigtighed, hvor skyggen nu er en gradient af farver fra objektet til baggrunden, som bliver gennemsigtig. Denne metode kan give et overraskende godt resultat, selv hvis baggrunden ikke er helt ensfarvet, da den udnytter dithering eller farveovergange inden for den indekserede palet til at simulere skyggen. Filstørrelsen bliver typisk meget mindre end det originale PNG med alpha-gennemsigtighed.

Billedtype Indstillinger Filstørrelse (ca.)
PNG Original Ægte farver, alpha-gennemsigtighed 16,1 KB
PNG Indekseret 255 farver, ingen transparens (flad baggrund) 6,5 KB
PNG Indekseret 255 farver, 'falsk' transparens (simuleret skygge) 6,0 KB

Som det fremgår, kan selv komplekse billeder med skygger reduceres betydeligt i størrelse ved at bruge disse teknikker, selvom de kræver mere arbejde og et kompromis med ægte alpha-gennemsigtighed.

Balancer Kvalitet og Størrelse

Nøglen til succesfuld billedoptimering med indeksering er at finde den rette balance. En mindre filstørrelse er altid ønskelig for hurtigere indlæsningstider, men det må ikke ske på bekostning af en uacceptabel kvalitetsforringelse. Det er vigtigt at eksperimentere med antallet af farver og brugen af dithering for hvert enkelt billede.

For nogle billeder vil en reduktion til kun 64 farver være fuldt ud acceptabel, mens andre kræver 256 farver eller mere for at bevare et godt udseende. Forståelsen af, hvordan dithering påvirker udseendet (specielt i gradienter) og hvordan indeksering håndterer gennemsigtighed og antialiasing, er afgørende for at vælge de rigtige indstillinger.

Ofte Stillede Spørgsmål

Hvorfor skal jeg indeksere mine PNG-billeder?

Den primære grund er at reducere filstørrelsen. Mindre billedfiler betyder hurtigere indlæsningstider for dine websider, hvilket forbedrer brugeroplevelsen, mindsker serverbelastningen og kan have positiv indflydelse på SEO (søgemaskineoptimering).

Hvornår skal jeg IKKE indeksere et PNG?

Hvis billedet er et foto (brug JPEG i stedet for), eller hvis billedet kræver ægte alpha-gennemsigtighed (som bløde skygger) og du ikke kan eller vil bruge 'falsk' gennemsigtighed eller fjerne den helt. For simple grafikker er indeksering næsten altid en god idé.

Hvad er forskellen på simpel og alpha-gennemsigtighed?

Simpel gennemsigtighed betyder, at en farve enten er helt gennemsigtig eller helt dækkende. Alpha-gennemsigtighed tillader varierende grader af gennemsigtighed (f.eks. 50% gennemsigtig), hvilket muliggør bløde overgange og effekter som skygger.

Hvor mange farver skal jeg vælge ved indeksering?

Start med færre farver (f.eks. 128 eller 64) og tjek resultatet. Hvis kvaliteten er acceptabel, er det et godt valg. Hvis der er synlige 'bånd' i gradienter eller farvetab, så øg antallet af farver gradvist (f.eks. til 256) indtil kvaliteten er tilfredsstillende. Målet er den laveste filstørrelse med acceptabel kvalitet.

Er dithering altid nødvendigt?

Nej. For billeder med store, ensfarvede områder eller skarpe overgange er dithering ofte unødvendigt og kan endda øge filstørrelsen. Brug dithering primært i billeder med gradienter eller mange farveovergange for at bevare et bedre visuelt udseende, hvis en begrænset farvepalet skaber 'bånd'.

Konklusion

At optimere billeder er en fundamental del af moderne webudvikling. Ved at mestre teknikken med at indeksere PNG-billeder kan du opnå dramatiske reduktioner i filstørrelse, hvilket fører til hurtigere indlæsningstider og en bedre oplevelse for brugerne. Forståelsen af samspillet mellem antallet af farver, dithering og håndteringen af gennemsigtighed er nøglen til at opnå de bedste resultater. Eksperimenter med indstillingerne for dine egne billeder for at finde den perfekte balance mellem størrelse og kvalitet. Din server (og dine besøgende!) vil takke dig.

Hvis du vil læse andre artikler, der ligner Reducer Filstørrelse med Indekseret PNG, kan du besøge kategorien Billeder.

Avatar photo

Franne Voigt

Mit navn er Franne Voigt, jeg er en 35-årig fotograf fra Danmark med en passion for at fange øjeblikke og dele mine erfaringer gennem min fotoblog. Jeg har arbejdet med både portræt- og naturfotografi i over et årti, og på bloggen giver jeg tips, teknikker og inspiration til både nye og erfarne fotografer. Fotografi er for mig en måde at fortælle historier på – én ramme ad gangen.

Go up