_dundun_ Skrevet 26. mars 2004 Del Skrevet 26. mars 2004 Her er en funksjon som tar inn en katalog, et bilde i katalogen og ønsket høyde på thumbnail. Hvis thumbnailen allerede finnes vises den, hvis ikke lages det en ny thumbnail-fil med navn thm_filnavnet.png og ønsket høyde, og denne vises. Det er viktig at katalogene med bilder er mulige å skrive til. Skriptet kan med hell modifiseres slik at det blir bedre på å fange opp feil, her jeg bruker det er det kun jeg som legger ut bilder slik at risikoen for feil inndata er så godt som fraværende. Posten ligger også i tråden "PHP kode som andre kanskje kan bruke.", men siden dette er en funksjon mange ønsker seg tenkte jeg det var greit å poste den under egen topic også. function thumb($katalog, $bilde, $hoyde) { $fil = $katalog . $bilde; $litenfil = $katalog . "thm_" . $bilde; if(!is_file($litenfil) && is_file($fil)) { $sjekk = explode(".",$bilde); $size = getimagesize($fil); // Finner dimensjonene på bildet $faktor = $hoyde / $size[1]; $bredde = round($size[0] * $faktor); if($bredde > 150) { $bredde = 150; $xfaktor = $bredde / $size[0]; $hoyde = $xfaktor * $size[1]; } //Sjekker for gyldige filtyper switch (strtolower($sjekk[1])) { case "jpg": $bilde = imagecreatefromjpeg("$fil"); break; case "gif": $bilde = imagecreatefromgif("$fil"); break; case "png": $bilde = imagecreatefrompng("$fil"); break; } //Lager grunnbilde for thumbnail $nytt = imagecreatetruecolor($bredde, $hoyde); imagecopyresampled ($nytt,$bilde, 0, 0, 0, 0, $bredde, $hoyde, $size[0], $size[1]); imagepng($nytt,"$litenfil"); chmod("$litenfil", 0755); // octal; correct value of mode } echo "<img src='$litenfil'>"; } Lenke til kommentar
???????? Skrevet 26. mars 2004 Del Skrevet 26. mars 2004 (endret) Hvorfor poster du det her også? Ønsker du tips til forbedringer? Det er noen ting der du kan fikse, i alle fall før du publiserer det. Edit: skrev en edit her, men det var kommet inn mange poster så lage en post av den. Endret 26. mars 2004 av ???????? Lenke til kommentar
phanti Skrevet 26. mars 2004 Del Skrevet 26. mars 2004 Er dette noe som bare fungere på *nix servere? for jeg fikk dette ikke til å virke på min apache server som kjører under win2k. Noen rutiner som mangler eller noe? (hos meg selvf ) Lenke til kommentar
_dundun_ Skrevet 26. mars 2004 Forfatter Del Skrevet 26. mars 2004 Hva mener du jeg bør fikse? Bortsett fra at error-handling baserer seg på kjent input? Grunnen til at jeg postet det her også står i posten... Lenke til kommentar
_dundun_ Skrevet 26. mars 2004 Forfatter Del Skrevet 26. mars 2004 Er dette noe som bare fungere på *nix servere? for jeg fikk dette ikke til å virke på min apache server som kjører under win2k.Noen rutiner som mangler eller noe? (hos meg selvf ) Grafikkbibliotekene i PHP må være installert, bortsett fra det skal det fungere overalt. Har bare prøvd det på *nix-servere, så er ikke sikker på hvordan det oppfører seg på en Win-server. Lenke til kommentar
???????? Skrevet 26. mars 2004 Del Skrevet 26. mars 2004 (endret) Den hørtes kanskje litt "sur" ut, men var ikke ment så ille. Her er et par tips: - hva hvis bildet ikke er png, jpg eller gif? - gjør størrelsen lettere å endre - chmod 644 holder lenge - hvorfor exploder du? det er en dårlig måte å sjekke filtype på, du bruker allerede getimagesize() der har du det du trenger, ellers kan du bruke mime_content_type() Du vet at du kan bruke æøå i variabelnavn, som f.eks. $høyde? Jeg har ikke sjekket selve funksjonene, men regner med at de fungerer bra siden du har publisert det. EDIT: Testet scriptet ditt litt, du burde gjøre flere endringer. Du overskriver muligheten til å bestemme høyden, ved mindre den er tilpasset en mindre verdi enn forholdet mot bredden - og hva er da poenget med å definere en høyde når bildet ikke kan bli høyere enn det bredden tillater? EDIT #2: Det er ikke bare negativt ment - scriptet er på vei Hvis du tar en kikk på http://no.php.net/manual/en/function.imagecopyresampled.php så finner du mange ferdige scripts for å tilpasse størrelsen på bilder. Endret 26. mars 2004 av ???????? 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å