simenss Skrevet 15. mars 2005 Del Skrevet 15. mars 2005 (endret) Jeg holder på med et script som lar brukerne mine laste opp bilder. Scriptet er ikke noe problem, men når jeg skulle finne en formel som tok hensyn til proporsjonene stoppet det opp. Jeg klarte å lage en liten formel, men bildene må enders etter spesielle mål, og disse målene kan forandre seg. For å forklare problemet litt bedre, i håp om at noen vil hjelpe meg, bruker jeg et hvitt ark som eksempel. Arket kan ha mange forskjellige størrelser, som vist under: Bredden og høyden på arket er aldri ukjent, og finnes i variablene $ark_w (bredde) og $ark_h (høyde). Målene på bildet kan selvsagt også variere veldig, som vist under: Altså, kombinasjonen av målene på arket og på bildet kan variere i det uendelige. Målene på bildet er heller aldri ukjent, og kalles $bilde_w (bredde) og $bilde_h (høyde). Si at an bruker har lastet opp et bilde som er 480 x 640 piksler. Arket bildet må passe til er 208 x 320. Bildet må derfor oppfylle følgende krav: • Ikke være bredere enn 208 piksler • Ikke være høyere enn 320 piksler For å regne ut ny størrelse på bildet laget jeg følgende formel: $ny_h = $ark_h; // $ny_h = 320 $ny_w = $ny_h*($bilde_w/$bilde_h); // $ny_w = 320*(480/640) $ny_w blir 320 (OK) $ny_h blir 240 (STØRRE ENN ARK) Denne formelen beholdt proporsjonene, men selv om den nye høyden på bildet nå ikke var større enn høyden på arket, var bredden på bildet plutselig større enn bredden på arket. Det er noe her jeg ikke helt forstår. Photoshop sin Image Size… funksjon gjør dette veldig enkelt, men formelen vises (selvfølgelig) ikke. Håper det er noen som er litt bedre i matte enn meg her EDIT: En liten skrivefeil Endret 15. mars 2005 av simenss Lenke til kommentar
H80 Skrevet 15. mars 2005 Del Skrevet 15. mars 2005 Du snakker om preposisjoner, men jeg tror muligens du mener proporsjoner... Lenke til kommentar
Drømmemannen Skrevet 15. mars 2005 Del Skrevet 15. mars 2005 I scriptet ditt tar du utganspunkt i at høyden på arket er det som begrenser størrelsen. Du må altså sjekke bredden du har regnet ut mot bredden av arket og gjøre nye beregninger hvis bildet fortsatt er for stort. Alternativt kan du sjekke proporsjonene til arket i fordhold til bildet først, før du finner størrelsen på bildet. For eksempel slik: if ($ark_h / $ark_w > $bilde_h / $bilde_w) { // Bredden på arket begrenser størrelsen $ny_w = $ark_w; $ny_h = $ny_w * ($bilde_h / $bilde_w); } else { // Høyden på arket begrenser størrelsen $ny_h = $ark_h; $ny_w = $ny_h * ($bilde_w / $bilde_h); } Lenke til kommentar
simenss Skrevet 15. mars 2005 Forfatter Del Skrevet 15. mars 2005 (endret) Er deg evig takknemmelig balletryne EDIT: Nok en skrivfeil Endret 15. mars 2005 av simenss Lenke til kommentar
pederan Skrevet 15. mars 2005 Del Skrevet 15. mars 2005 Har du prøvd phpThumb()? Det må jo være midt i blinken. Jeg har brukt det selv og er strålende fornøyd. Se hjemmeside: phpThumb() Lenke til kommentar
simenss Skrevet 16. mars 2005 Forfatter Del Skrevet 16. mars 2005 Har du prøvd phpThumb()? Takk for tipset! Liker best å skrive scriptene selv, men tar en titt på det nå! Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå