Visa ett inlägg
Oläst 2012-09-05, 08:49 #8
pelmereds avatar
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2010
Inlägg: 1 342
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
pelmereds avatar
 
Reg.datum: May 2010
Inlägg: 1 342
Citat:
Ursprungligen postat av dAEk Visa inlägg
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.
Det beror dels på att det är en begränsning i hur många decimaler PHP kan hantera och att PHP gör om siffrorna till base 2 internt. Läs mer om det i Floating point precision-varningen här: http://www.php.net/manual/en/language.types.float.php
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).
pelmered är inte uppkopplad   Svara med citatSvara med citat