Thumbnails erstellen und "cachen"

  1. chrigu

    chrigu Thread StarterMacUser Mitglied

    Mitglied seit:
    08.03.2004
    Beiträge:
    155
    Zustimmungen:
    0
    Ich habe mir ein Script erstellt, das bei aufrufen mittels <img src="images/fotos/thumb.php?image=auto.jpg"> ein Thumbnail des in der Variabel definierten Bildes zurückgibt.

    Das thumb.php liegt im gleichen Verzeichniss wie die Bilder, von denen ein Thumb erstellt wird oder gegebenenfalls aus dem Cache Ordner ausgelesen wird.

    PHP:
    <?php
    // Bilderzeugung - thumb.php



    if (!is_dir("cache")) {
        
    mkdir("cache"0777); 
        }else {
        
    system("chmod 0777 ".cache);
        }

    $verz dir("images/fotos/cache");

    if (
    file_exists($verz.$_GET['image'])) {
        
    $iscached true;
        }else {
        
    $iscached false;
        }



    if (!
    $iscached) {
      
      
    header("Content-type: image/jpeg");
      
      
    $scale 4;
      
    $size getimagesize($_GET['image']);
      
    $width round($size[0]/$scale);
      
    $height round($size[1]/$scale);
      
    $src imagecreatefromjpeg($_GET['image']);
      
    $dest imagecreatetruecolor(69,69);
      
    imagecopyresized($dest$src, -10, -1000$width$height$size[0], $size[1]);
      
    imagejpeg($dest$verz.$_GET['image']);
      
    imagedestroy($dest);
      
    imagedestroy($src);

      }
      
      
    $image $verz.$_GET['image'];
      
      
    $image fopen($image"rb");
      
    fpassthru($image);
      
    fclose($image);
      
    ?>
    Leider will es nicht so, sobald ich den Inhalt der Verzweigung (!iscached) lösche ist das Script fehlerfrei, aber funktioniert natürlich nicht wie gewünscht. Ich vermute dort einen Fehler, den ich nicht gefunden habe, es könnte aber durchaus sein, dass ich generell einen Überlegungsfehler gemacht habe.

    Ich danke jedenfalls fürs mithelfen!
     
    chrigu, 25.10.2004
  2. tobias.beuth

    tobias.beuthMacUser Mitglied

    Mitglied seit:
    06.09.2004
    Beiträge:
    143
    Zustimmungen:
    0
    Hat dir immer noch keiner geholfen? :)

    Ich werds mal versuchen.

    Dazu brauch ich aber zuerst mal die Fehlermeldung wenn es eine gibt.
    Wenns die nicht gibt, dann einfach mal beschreiben wie sich der Browser verhält.
     
    tobias.beuth, 26.10.2004
  3. tobias.beuth

    tobias.beuthMacUser Mitglied

    Mitglied seit:
    06.09.2004
    Beiträge:
    143
    Zustimmungen:
    0
    Also wenn der Browser einfach abbricht dann ist das meinst ein zeichen dafür das.
    ImageCreate (In irgend einer Form )nicht geklappt hat.

    Hab ich zumindest gerade gelesen.

    Probier es mal mit absoluten Pfaden. Damit kannst du das zumindest schonmal ausschliessen.
     
    tobias.beuth, 26.10.2004
  4. wegus

    wegusMacUser Mitglied

    Mitglied seit:
    13.09.2004
    Beiträge:
    14.982
    Zustimmungen:
    1.545
    Grundsätzlich bei PHP:

    Soweit vereinfachen wie möglich, die gemeldeten Fehler helfen eher selten.
    Setz das Verzeichnis manuell, setze die Rechte manuell, kommentier das Setzen von ischached aus und entferne die if-clause. Per phpinfo nachsehen, ob gdlib funktioniert. Ist libjpeg installiert ? Sonst geht jpeg nämlich nicht.

    Sind size[0] und [1] gesetzt ?, nach welcher Zeile wird denn ein Fehler ausgegeben, wie lautet er? dann kann ich evtl. mehr sagen. Ich hab jetzt erst mal ne Besprechung...
     
    wegus, 26.10.2004
  5. chrigu

    chrigu Thread StarterMacUser Mitglied

    Mitglied seit:
    08.03.2004
    Beiträge:
    155
    Zustimmungen:
    0
    //Ihr seid schon zuvorkommend, weil beim nachbar phpforum habe ich bis
    //jetzt vergebens auf Hilfe gewartet.

    Ich bin mittlerweile soweit, dass die Variable $verz nun folgenden Wert: $verz = "cache/" hat, damit werden nun die Thumbs im Cache Ordner erstellt. kleiner Erfolg!

    Jetzt scheint die Übergabe der Bilder an den Browser nicht zu funktionieren, bin mir nicht sicher, ob ich das richtig gemacht habe. Wenn der Browser das Bild mit dem HTML-Tag <img src="images/fotos/thumb.php?image=auto.jpg">aufruft erscheint dieses Bild mit dem Fragezeichen.

    Ich weiss nicht so recht wo ich die
    PHP:
    header("Content-type: image/jpeg");
    Funktion einbauen soll, die soll ja verantwortlich sein damit das Bild an den Browser übergeben wird.

    Thanks, und grosses Lob an die Macuser-Community pepp
     
    chrigu, 26.10.2004
  6. tobias.beuth

    tobias.beuthMacUser Mitglied

    Mitglied seit:
    06.09.2004
    Beiträge:
    143
    Zustimmungen:
    0
    Hi,
    fein das es doch noch geklappt hat.

    den header musst du so oder so senden wenn du kein html img ausgeben willst.
    also immer wenn du vom filesystem liest und das dann an den browser ausgeben willst.

    in deinem fall also immer, egal ob gecachte version oder nicht.
    auf jedenfall aber for dem fpassthru();

    wenn das nicht klappt sind hier noch ein paar header die vielleicht auch noch mitmüssten (nach dem mime-type)

    ach ja und einen zeilenumbruch nach jedem geschickten header. und nicht zu vergessen keine leerzeichen vor oder nach dem php-block.

    header("Content-Transfer-Encoding: binary\n");
    header("Content-Length: {$deine_file_groesse}\n");
     
    tobias.beuth, 26.10.2004
  7. chrigu

    chrigu Thread StarterMacUser Mitglied

    Mitglied seit:
    08.03.2004
    Beiträge:
    155
    Zustimmungen:
    0
    genau das wars, jetzt funktionierts!
     
    chrigu, 26.10.2004
Die Seite wird geladen...
Ähnliche Themen - Thumbnails erstellen cachen
  1. es99musik
    Antworten:
    5
    Aufrufe:
    1.209
    MacBengel
    02.10.2012
  2. MalteW
    Antworten:
    0
    Aufrufe:
    1.943
  3. MrSmidi
    Antworten:
    1
    Aufrufe:
    1.857
  4. ego321
    Antworten:
    2
    Aufrufe:
    941