FAQ |
Kalender |
|
![]() |
#1 | ||
|
|||
Har WN som tidsfördriv
|
Kanske missförstår jag men det där verkar vara en väldigt komplicerad, tung och oexakt lösning på ett väldigt enkelt problem?
Testa nått i denna stilen: //Värden på bild och maxvärden på skalad bild W1 == 2100 H1 == 3000 MaxW == 250 MaxH == 250 //Dela nuvarande mått med önskade mått för att få fram skalan, använd det högsta värdet till att skala med W1 / MaxW -> 8.4 H1 / MaxH -> 12 //Dela med 12 och vips så är dina nya mått 175x250 2100/12 -> 175 3000/12 -> 250 |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Klarade millennium-buggen
|
Helt rätt tänkt.. Fungera utmärkt.
Citat:
|
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Mycket flitig postare
|
Hur hanterar ni fall där ratio-beräkningarna inte blir exakta? Jag gör liknande beräkningar men en del bilder som skalas ned blir 199px när jag sätter maxdimensionerna till 200. Det beror på castningar från double till int. Vet ni några bra sätt att lösa det på förutom att göra fula if-else-kontroller och lägga till tomma pixlar?
Ni borde ha samma problematik i era varianter ovan. |
|||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Har WN som tidsfördriv
|
Citat:
Den andra anledningen är att när man castar till Int kapar de väl bara bort decimalerna (dvs kör en floor(), t.ex. 5,6 => 5). För att det ska bli rätt är det bara att köra ceil() eller round() för att få hela pixlar innan du castar till Int(om du nu måste det). |
|||
![]() |
![]() |
![]() |
#5 | |||
|
||||
Mycket flitig postare
|
Jag var nog bara trött när jag skrev det där med avrundningen och måste ha stirrat mig blind på måtten och sett att det fanns bilder som saknade 1px på bredden. I efterhand ser jag att de ju faktiskt hållt sig inom måtten som jag specade men att maxhöjden har uppnåtts före maxbredden; att det fattades 1px beror alltså inte på ett algoritmfel utan på ursprungsbildernas dimensioner. Doh!
|
|||
![]() |
![]() |
Svara |
|
|