En viktig del inom webbutveckling som många glömmer (eller inte ens känner till) är: bilder och presentation av bilder i korrekta proportioner för att inte ”skrynklas” och bli förvrängda och tappa kvalitet.

Jag kallar detta område för bildproportioner förklarat då jag syftar till att informera om enkla matematiska formler som praktiskt taget kan göras via huvudräkning för att ta reda på vad en bild skall ha för ny bredd, respektive höjd vid förminskning, för att behålla originalbildens proportioner.

Förstoring av en bild brukar bli kasst oavsett om man behåller proportioner eller ej, fast såklart- mindre kasst om man behåller proportionerna.

Formlerna kan liknas vid det som automatiskt görs i t ex. Photoshop bildredigerings programmet när man har ikryssat rutan för att behålla bildproportionerna.

Det är dock inte alltid man har Photoshop tillgängligt, därför tänker jag att det kan vara användbart att känna till en bakomliggande formel för hur man själv kan göra samma sak på egen hand vart man än befinner sig/vad man än har att jobba med :)

Vår Exempelbild att skala om

Vi kommer utgå från att vi har en bild vars dimensioner är som följer:

Bredd är 430 pixlar medan Höjden är 275 pixlar.

Alltså: 430 x 275 som ursprungliga ”grund” dimensioner. Detta för att visa att det går att applicera vår formel på alla bilder, oavsett dimensioner.

Vi kommer i exemplet välja att förminska vår originalbild till ett proportionellt nedskalat alternativ.

Räkna ut Nya proportionerliga dimensioner för vår bild

Vår formel går ut på att vi väljer antingen en förutbestämd höjd (eller bredd för den delen) och sedan utifrån vårt nya valda dimensionsvärde (höjden/bredden), räknar vi ut det andra dimensionsvärdet.

Detta är speciellt användbart och praktiskt i webbutveckling då man t ex. sitter med en originalbild som är väldigt stor och man bara vill se hur den skulle se ut med mindre proportionella dimensioner som bättre passar in i ens egna sidlayout.

Då kan det vara användbart och bra att kunna på direkten räkna ut motsvarande bredd, eller höjd – utifrån det andra värdet man valt.

T ex. om ni tänker er att ni har en sidlayout där bilderna måste vara 200 pixlar höga, så behöver ni då räkna ut en proportionell motsvarighet i bredd.

Eller om ni ska göra ett galleri och ni vet att varje bild måste vara en fast bestämd bredd, t ex. 325 pixlar, medan höjden är tillåten att flexibelt variera (detta hjälper att hålla bilderna proportionella).

Stega igenom formeln och processen

Välja vårt ena dimensionsvärde

För detta exemplet tänker jag bygga på ovan praktiska exempel där vi hade en höjdbegränsning på 200 pixlar för bilderna till vår sidlayout.

Räkna ut vårt ”förhållande-värde” för nya bilden till originalbilden

Om vår originalbild nu var 430 pixlar bred, och 275 pixlar hög, och vi nu måste minska bilden till 200 pixlar i höjd, så kan vi få 2 olika förhållande-värde mellan originalbilden och den nya bildens dimensioner: antingen originalbild -> nybild, eller nybild -> originalbild.

Vad detta då innebär är att man dividerar t ex. originalbildens höjd med nya bildens höjd, eller tvärt om. I vissa fall blir det ena enklare än det andra.. Det märker man med tiden allteftersom man gör det mer och mer. Jag kommer visa varför längre ned, se nedan exempel för förhållandet vi väljer i det här fallet:

höjdförhållande för proportionell bildförminskning

Höjdförhållande för proportionell bildförminskning

Det fanns en baktanke också varför vi valde att göra det just i den här ordningen.

Med Nya bildens höjd som täljare, och originalbildens höjd som nämnare– nämligen av anledning att när vi sen skall räkna ut breddförhållandet så blir det enklare att lösa ut den okända nya bredden (x) om den står i täljaren, än om den stod i nämnaren – simpel algebraisk bråkräkning :)

Värdet vi fick ut av ovan uträkning är vårt förhållande-värde, och vad som är speciellt med detta, är att det måste vara exakt samma för både bredd-förhållandet- såväl som höjd-förhållandet, om vi vill behålla proportionerna till vår originalbild för de nya dimensionerna av bilden.

Algebraisk ekvationslösning för att få ut resterande nya dimensionsvärdet

Vad som nu återstår är att med hjälp av algebraisk ekvationslösning lösa ut den nya bilddimensionens proportionella bredd-värde genom att utföra följande uträkning:

uträkning för bredd-förhållandet via algebraisk ekvationslösning

Uträkning för bredd-förhållandet via algebraisk ekvationslösning

Som ni då sen ser ovan så ger detta oss alltså en proportionell ny bildbredd på 313 pixlar avrundat uppåt.

Vilket innebär att vår nya förminskade bilds dimensioner ska vara: 313×200 för att vara så nära proportionell mot originalbilden som möjligt (säger ”så nära proportionell som möjligt” då som ni ser ovan så hade vi 312.73 och inte 313 pixlar som ny bredd – dock är det bäst att man anger bredd i HTML för bilder med heltal, + att det inte är ”så mycket skillnad” egentligen).

Distorsion och förvrängning

Varje gång en bild skalas om till nya dimensioner (framförallt vid förminskning) – speciellt om de nya dimensionerna inte proportionellt matchar originalbildens dimensioner, så tappar bilden kvalitet!

För att undvika detta kan man i vissa fall använda sig av SVG (Scalable Vector Graphic / Vektorgrafik) istället, som alltid behåller exakt samma kvalitet oavsett hur mycket- eller lite- man än skalar om bilden. Annars får man helt enkelt vara uppmärksam på hur man skalar om sina bilder och försöka behålla proportionerna till originalbilden så gott det går :)

Slutkläm

Såja, då vet ni hur ni kan göra det Photoshop annars gör åt er på egen hand + att ni fick repeterat gymnasiala matematik-kunskaperna ^^

Hoppas ni fann detta inlägg lärorikt och intressant, och att ni kanske får nytta av det någon gång framöver :) Enjoy ^^