15. juli 2007 - 16:30
Der er
14 kommentarer og 1 løsning
Hjælp med miniature af billed galleri
Hej alle. Er ved at lave et lille simpelt galleri, hvor jeg vil have billederne skal vises i miniature. Her er min kode. Den virker ikke :(, når jeg prøver at gøre billederne mindre. [code]$bredde = "100"; $hoejde = "100"; echo "<br><b>Galleri:</b><br>"; foreach (glob("billeder/*.jpg") as $filename) { // her dannes miniaturerne ... header("Content-Type: image/jpeg"); $img_in = imagecreatefromjpeg($filename); $img_out = imagecreatetruecolor($bredde, $hoejde); imagecopyresampled($img_out, $img_in, 0, 0, 0, 0, imagesx($img_out), imagesy($img_out), imagesx($img_in), imagesy($img_in)); $image = imagejpeg($img_out); $mimi_image = $image; // Slut for miniature ... $file = str_replace('billeder/', '', $filename); $file = str_replace('.jpg', '', $file); $file = str_replace('_', ' ', $file); $imgname = str_replace('billeder/', '', $filename); $imgname = str_replace('.jpg', '', $imgname); echo "<a href=\"$filename\"><img src=\"$mimi_image\" alt=\"$imgname\" style=\"border:1px solid #6699CC;\"></a>\n"; }[/code]
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
Hvad er det du ønsker opnå med dit script? Vil du resize billeder og gemme dem igen? Eller prøver du at resize on-the-fly?
Jeg vil bare resize billedet ved visningen. Den skal hverken gemmes eller andet. Den skal bare lave billedet mindre når den skal vises i galleriet.
Men du forsøger at løbe mange billeder igennem?
Ja, den løber et par billeder igennem, men det burde da ikke gøre den særlig meget langsommere. Billederne bliver jo også mindre i størrelsen af at blive resize
Kan ikke få det til at virke. Har prøvet at lave min resize som en funktion. Koden er her: <?php /* START */ function resize($img) { $bredde = "100"; $hoejde = "100"; list($bredde, $hojde) = getimagesize($img); // Finder højden af billedet i $filename ... $forhold = $hojde/$bredde; // finder forholdet mellem højden og bredden $bredde_ny = 100; $hojde_ny = round($bredde_ny*$forhold); $image = imagecreatefromjpeg($img); $destination = imagecreate($bredde_ny, $hojde_ny); imagecopyresized($destination, $image, 0, 0, 0, 0, $bredde_ny, $hojde_ny, $bredde, $hojde); $image_done = imagejpeg($destination); return $image_done; } echo "<html> <head> <title>test galleri</title> </head> <body>"; echo "<b>Gallery:</b><br>\n"; foreach (glob("billeder/*.jpg") as $filename) { $file = str_replace('billeder/', '', $filename); $file = str_replace('.jpg', '', $file); $file = str_replace('_', ' ', $file); $imgname = str_replace('billeder/', '', $filename); $imgname = str_replace('.jpg', '', $imgname); echo "<a href=\"$filename\"><img src=\""; resize($filename); echo "\" alt=\"$imgname\" style=\"border:1px solid #6699CC;\"></a>\n"; } echo "</body> </html>"; /* END */ ?> Jeg får bare en masse tekst, små billeder og navnene på de billeder der er.
Kan hurtigt se det ikke virker. src for en img tag skal henvise til en fil på serveren og ikke til noget indhold som du gør. $mimi_image indeholder jo ingen sti til et billede, men billededata, der er stor forskel.
Ja det kan jeg godt se nu, men ved ikke helt hvad jeg skal gøre så :/ skal jeg bare lave scriptet så den registrer alle billeder i mappen og resuze dem til en anden og derefter lave det link?
Hvorfor vil du resize on-the-fly? Hvorfor ikke lave det miniature billede en gang for alle og ikke belaste serveren hver gang galleriet vises?
15. juli 2007 - 19:02
#10
Syntes bare det andet var bedre fordi jeg ikke skulle holde styr på så mange filer så.
15. juli 2007 - 19:58
#11
Det er selvfølgelig rigtigt. Men du kan jo altså lave: filnavn.jpg <- Original billede thumb_filnavn.jpg <- Resized Du skal jo bare have en mappe til filerne, så skulle din kode gerne klare resten selv.
16. juli 2007 - 13:26
#12
Ja det har du jo ret i. Jeg vil prøve at finde en guide med det så. :)
16. juli 2007 - 18:55
#13
Prøv at se om du ikke kan finde noget af min gamle kode. Jeg har lave en funktion der hedder resize()
19. august 2007 - 19:28
#14
svar
19. august 2007 - 19:49
#15
Du fandt en løsning?
Vi tilbyder markedets bedste kurser inden for webudvikling