Disse formlene løser problemet greit:
Ny bredde beregnes slik:
ny bredde = bredde * ny høyde / eksisterende høyde
Ny høyde beregnes slik:
ny høyde = høyde * ny bredde / eksisterende bredde
Formlene kan også kombineres for å sørge for at et miniatyrbildet har både en maksbredde og en makshøyde.
I kodeeksemplet nedenfor er maks bredde og høyde 200 piksler. Ny størrelse vil beregnes (til 200 X 150) fra original størrelse (400 X 300).
Dim hoydeEksisterendeBilde As Integer = 400
Dim breddeEksisterendeBilde As Integer = 300
Dim maksBredde As Integer = 200
Dim maksHoyde As Integer = 200
Dim nyBredde As Integer = maksBredde
Dim nyHoyde As Integer = hoydeEksisterendeBilde * nyBredde / breddeEksisterendeBilde
If nyHoyde > maksHoyde Then
nyHoyde = maksHoyde
' beregn bredde siden bildet var for høyt
nyBredde = breddeEksisterendeBilde * nyHoyde / hoydeEksisterendeBilde
End If
Oppdatering
Jeg har siden funnet et eksempel på det samme i "Personal Web Site Starter Kit" som følger med VS 2005. Prosjektet kan også lastes ned fra http://www.asp.net/downloads/starterkits/default.aspx?tabid=62.
Ingen kommentarer:
Legg inn en kommentar