Codegenerator Thumbnail

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Codegenerator Thumbnail

    Hey Leute ich habe folgendes Problem. Ich habe in einem Ordner Bilder aus welchen ich per Skript Thumbnails zur Vorschau anzeigen lassen will.

    Mein Skript kann allerdings bis jetzt nur ein vorher angegebenes Bild in einen Thumbnail umwandeln und anzeigen.

    Ich bräuchte jetzt also eine Erweiterung für mein Skript welche einen ganzen Ordner einliest und dann aus jedem Bild einen Thumbnail zur Vorschau erstellt.


    Quellcode

    1. <?php
    2. function resizePicture($file, $width, $height)
    3. {
    4. if(!file_exists($file))
    5. return false;
    6. header('Content-type: image/jpeg');
    7. $info = getimagesize($file);
    8. if($info[2] == 1)
    9. {
    10. $image = imagecreatefromgif($file);
    11. }
    12. elseif($info[2] == 2)
    13. {
    14. $image = imagecreatefromjpeg($file);
    15. }
    16. elseif($info[2] == 3)
    17. {
    18. $image = imagecreatefrompng($file);
    19. }
    20. else
    21. {
    22. return false;
    23. }
    24. if ($width && ($info[0] < $info[1]))
    25. {
    26. $width = ($height / $info[1]) * $info[0];
    27. }
    28. else
    29. {
    30. $height = ($width / $info[0]) * $info[1];
    31. }
    32. $imagetc = imagecreatetruecolor($width, $height);
    33. imagecopyresampled($imagetc, $image, 0, 0, 0, 0, $width, $height, $info[0], $info[1]);
    34. imagejpeg($imagetc, null, 100);
    35. }
    36. $file = 'vorschaubilder/Tux.png';
    37. $width = 100;
    38. $height = 50;
    39. resizePicture($file, $width, $height);
    40. ?>
    Alles anzeigen


    Danke für eure Hilfe
  • geht noch net

    Mein Skript sieht jetzt folgendermaßen aus:

    Quellcode

    1. <?php
    2. function resizePicture($file, $width, $height)
    3. {
    4. if(!file_exists($file))
    5. return false;
    6. header('Content-type: image/jpeg');
    7. $info = getimagesize($file);
    8. if($info[2] == 1)
    9. {
    10. $image = imagecreatefromgif($file);
    11. }
    12. elseif($info[2] == 2)
    13. {
    14. $image = imagecreatefromjpeg($file);
    15. }
    16. elseif($info[2] == 3)
    17. {
    18. $image = imagecreatefrompng($file);
    19. }
    20. else
    21. {
    22. return false;
    23. }
    24. if ($width && ($info[0] < $info[1]))
    25. {
    26. $width = ($height / $info[1]) * $info[0];
    27. }
    28. else
    29. {
    30. $height = ($width / $info[0]) * $info[1];
    31. }
    32. $imagetc = imagecreatetruecolor($width, $height);
    33. imagecopyresampled($imagetc, $image, 0, 0, 0, 0, $width, $height, $info[0], $info[1]);
    34. imagejpeg($imagetc, null, 100);
    35. }
    36. $ordner = 'bilder';
    37. $handle = opendir($ordner);
    38. while ($file = readdir ($handle)) {
    39. if(preg_match('/\.(png|jpg|gif)$/', $file))
    40. resizePicture($file, $width, $height);
    41. }
    42. closedir($handle);
    43. $width = 100;
    44. $height = 50;
    45. ?>
    Alles anzeigen


    Allerdings erscheinen die Thumbnails nicht. hab ich einen Fehler beim Einbauen gemacht? Eine Fehlermeldung vom PHP erscheint nicht am Bildschirm.

    Danke
  • Das Skript funktioniert jetzt so weit allerdings zeigt es mir nur das erste Bild im Ordner an. Habt Ihr dafür ne Lösung???

    Quellcode

    1. <?php
    2. function resizePicture($file, $width, $height)
    3. {
    4. if(!file_exists($file))
    5. return false;
    6. header('Content-type: image/jpeg');
    7. $info = getimagesize($file);
    8. if($info[2] == 1)
    9. {
    10. $image = imagecreatefromgif($file);
    11. }
    12. elseif($info[2] == 2)
    13. {
    14. $image = imagecreatefromjpeg($file);
    15. }
    16. elseif($info[2] == 3)
    17. {
    18. $image = imagecreatefrompng($file);
    19. }
    20. else
    21. {
    22. return false;
    23. }
    24. if ($width && ($info[0] < $info[1]))
    25. {
    26. $width = ($height / $info[1]) * $info[0];
    27. }
    28. else
    29. {
    30. $height = ($width / $info[0]) * $info[1];
    31. }
    32. $imagetc = imagecreatetruecolor($width, $height);
    33. imagecopyresampled($imagetc, $image, 0, 0, 0, 0, $width, $height, $info[0], $info[1]);
    34. imagejpeg($imagetc, null, 100);
    35. }
    36. $width = 100;
    37. $height = 50;
    38. $ordner = 'bilder';
    39. $handle = opendir($ordner);
    40. while ($file = readdir ($handle)) {
    41. if(preg_match('/\.(png|jpg|gif|JPG|GIF|PNG)$/', $file))
    42. resizePicture($ordner.'/'.$file, $width, $height);
    43. }
    44. closedir($handle);
    45. ?>
    Alles anzeigen


    mfg Danke
  • Was hast du vor?
    Willst du alle Bildverkleinerungen zu einem großen Bild zusammenscheniden?

    Ich dachte du willst nur die Thumbnails speichern.
    Dann müsstest in #43 einen Zielpfad für das Bild angeben.

    Quellcode

    1. imagejpeg($imagetc, 'thumb/'.$file, 100);



    Wenn du auf einer HTML Seite alle Thumnails untereinander darstellen willst (wie in einer Galerie), dann machst du das in etwa so:

    Quellcode

    1. while ($file = readdir ($handle)) {
    2. if(preg_match('/\.(png|jpg|gif)$/i', $file))
    3. echo '<img src="resize.php?img='.$ordner.'/'.$file.'&width='.$width.'&height='.$height.'" alt="" /> ';
    4. }


    Die resize,php kannst du dann ähnlich wie in deinem ersten Posting aufbauen.


    UPDATE: Hier findest du unser Tutorial zum Thumbnail generieren: [wiki]Thumbnails in PHP erstellen[/wiki]