Avatar billede sk-man Nybegynder
20. november 2003 - 15:16 Der er 15 kommentarer og
1 løsning

Thumbnail generering fra mappe med filer

Der er massere af svar på spørgsmål med thumbnails her på eksperten, men jeg kan ikke finde det jeg skal bruge.

Jeg skal have en php side som kan vise en masse thumbnails. Disse thumbnails skal laves ud fra billederne i en bestemt mappe på min server som indeholder en masse billeder. Alle billederne i mappen skal vises som thumbnails. Når man klikker på thumbnailen skal man få vist det store billede.

Er der nogle af jer som har en løsning, eller et link til en nem tutorial?
Avatar billede stalle Nybegynder
20. november 2003 - 15:34 #1
Jeg har en løsning, men det fungere således at du først laver thumbnailen én gang. - så er der en side der viser dem, og det oprindelige billede vises ved at klikke på det.

Synes det er den bedste måde at gøre det på, da du så kun skal lave thumbnailen én gang, og ikke for hver gang siden loades.
Avatar billede hammerhead Nybegynder
20. november 2003 - 16:05 #2
Se evt. om der er nogen du kan bruge på http://www.design4u.dk
Avatar billede sk-man Nybegynder
20. november 2003 - 20:46 #3
Hammerhead-> Det jeg gerne vil have minder om "PHP Photo Gallery" fra dit link, men den generere ikke selv thumbnails... kan man ikke få den til selv at lave thumbnails?
Avatar billede stalle Nybegynder
20. november 2003 - 20:58 #4
<?php

$total=0;


$d=opendir($_SERVER["DOCUMENT_ROOT"]. "pics");
system("rm -rf tn_*");
while ($f=readdir($d)) {
$files[]=$f;
}
closedir($d);


sort($files);

for ($i=0;$i<count($files);$i++) {
$f=$files[$i];
if (eregi('([^.]+)(.jpg|.gif|.png)$',$f,$a) && $f!='index.php') {
//echo "<a href='$f'>$a[1]</a><br>";

$total++;

$billede_src = $f;


//sætter destination for thumbs
$dest_thumb = "tn_".$billede_src;

//Sætter thumb-bredde
$newWidth = "90";

//finder billede størrelse
$imginfo = @getimagesize($billede_src);
if ($imginfo == NULL)
  return false;

// højde og bredde
$srcWidth = $imginfo[0];
$srcHeight = $imginfo[1];

//skalering
$ratioWidth = $srcWidth/$newWidth;
$ratioHeight = 0;
$destWidth = $newWidth;
$destHeight = $srcHeight / $ratioWidth;

exec("convert -quality 100 -antialias -sample \"".$destWidth."x".(int)$destHeight."\" \"$billede_src\" \"$dest_thumb\"");
echo "$billede_src blev gemt som $dest_thumb $total<br>";

echo "<img src='$dest_thumb'><br>";


}
}
Avatar billede stalle Nybegynder
20. november 2003 - 20:58 #5
mit eksempel kræver at ImageMagic er installeret på serveren...
Avatar billede sk-man Nybegynder
21. november 2003 - 12:42 #6
Jeg har kun GD lib på serveren

Øv hvor er jeg besværlig
Avatar billede hammerhead Nybegynder
21. november 2003 - 12:58 #7
Hvad med et komplet galleri som f.eks coppermine - det kan bruge GD. Du får så nogle ekstra funktioner med som mulighed for at give billederne karakter.
Avatar billede sk-man Nybegynder
22. november 2003 - 16:55 #8
hammerhead -> Men så skal man, så vidt jeg forstår, have billederne i databasen, og det er også besværligt....
Avatar billede sk-man Nybegynder
22. november 2003 - 16:55 #9
Ha, nu kom jeg til at acceptere dit svar stalle....

Nå men jeg har da fået nogle ideer til hvordan man kan lave det. Tak skal i ha.
Avatar billede stalle Nybegynder
22. november 2003 - 17:04 #10
installer da ImageMagic urpmi imagemagic eller apt-get install imagemagic - alt efter distro
Avatar billede sk-man Nybegynder
22. november 2003 - 17:07 #11
Jeg har ikke min egen server, men et webhotel, så jeg kan ikke bare installere
Avatar billede stalle Nybegynder
22. november 2003 - 17:18 #12
ahh - sorry - men...to sekunder så finder jeg lige noget
Avatar billede stalle Nybegynder
22. november 2003 - 17:22 #13
$src_img = imagecreatefromjpeg($src_file);
    $dst_img = imagecreate($destWidth,$destHeight);
    imagecopyresized($dst_img, $src_img, 0, 0, 0, 0, $destWidth,(int)$destHeight, $srcWidth, $srcHeight);
    imagejpeg($dst_img, $dest_file, 100); // Quality = 100
    imagedestroy($src_img);
    imagedestroy($dst_img);

Det er med hvor PHPen laver det
Avatar billede sk-man Nybegynder
25. november 2003 - 22:05 #14
Tak for dit svar stalle. Jeg forstår ikke helt koden...

Skal det sidste du har skrevet erstatte noget af det der er i indlæg (20/11-2003 20:58:06)?
Avatar billede stalle Nybegynder
25. november 2003 - 23:08 #15
Ja, det er egentlig bare selve skalleringen der bliver lavet i det sidste indlæg
Avatar billede sk-man Nybegynder
26. november 2003 - 10:11 #16
Hvad skal så fjernes fra koden (d 20/11-2003 20:58:06), og hvor skal (22/11-2003 17:22:00) sættes ind? Det kan godt være at det er et dumt spørgsmål, men jeg er helt ny i php?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester