Erweiterung einer Bildergalerie

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Erweiterung einer Bildergalerie

    Mir hat ein Kumpel vor einiger Zeit ein cript für eine Bildergalerie geschickt. Anfangs funktionierte es gut aber je mehr Bilder dazukamen, umso länger dauerte es bis die Seite geladen ist. Jetzt wollte ich die Galerie so erweitern, dass die Vorschaubilder auf dem Server gespeichert werden und neue erstellt werden, wenn noch keine vorhanden sind. Allerdings weiß ich nicht genau wie ich das anstellen soll. Das Script das für die Vorschau zuständig ist, ist das hier

    PHP-Code:
    <?php

    // Variablen auslesen
    while (list($key,$val)=each($_GET)) {
    ${
    $key} = $val; }

    if(
    $thumb)
    {
    // falls keine Größe vorhanden, dann default-Wert verwenden
    if ($w AND $h) {$ThumbnailBreite $w$ThumbnailHoehe $h;}
    else {
    $ThumbnailBreite 160$ThumbnailHoehe 90;}
    // Thumbnail erstellung
    // Bild Daten auslesen
    $Bilddaten getimagesize($thumb);
    $Format $Bilddaten[2];
    $OriginalBreite $Bilddaten[0];
    $OriginalHoehe $Bilddaten[1];
    // JPEG File ?
    if ($Format==2)
    {
    // Abbild der Bilder im Speicher erstellen
    $Originalgrafik ImageCreateFromJPEG($thumb);
    $Thumbnailgrafik ImageCreateTrueColor($ThumbnailBreite$ThumbnailHoehe);

    // Verhältnisse ausrechenn und die Mitte ermitteln
    if (($OriginalBreite/$ThumbnailBreite) < ($OriginalHoehe/$ThumbnailHoehe)){
    $AusschnittBreite=$OriginalBreite;
    $AusschnittHoehe=($ThumbnailHoehe*($OriginalBreite/$ThumbnailBreite));
    $OriginalPosX=0;
    $OriginalPosY=($OriginalHoehe-$AusschnittHoehe)/2; }
    else{
    $AusschnittHoehe=$OriginalHoehe;
    $AusschnittBreite=($ThumbnailBreite*($OriginalHoehe/$ThumbnailHoehe));
    $OriginalPosX=($OriginalBreite-$AusschnittBreite)/2;
    $OriginalPosY=0;}

    // Thumbnail erstellen
    ImageCopyResized($Thumbnailgrafik$Originalgrafik00$OriginalPosX$OriginalPosY
    $ThumbnailBreite$ThumbnailHoehe$AusschnittBreite$AusschnittHoehe);

    // ausgabe des thumbnails
    header("Content-type: image/jpeg");
    imagejpeg($Thumbnailgrafik,null,100);
    }
    }
    ?>
    Wie mache ich es nun, dass überprüft wird, ob die Vorschaubilder da sind oder nicht, und falls nicht, dass diese dann in einem neuem Unterordner des eigentlichen Bildordners gespeichert werden? Die Galerie funktioniert so, dass ich einen Ordner hochladen muss und dieser dann direkt auf der Seite erscheint. Kann mir jemand dabei helfen?
    Zuletzt geändert von picco; 27.01.2007, 23:56.

  • #2
    Wie mache ich es nun, dass überprüft wird, ob die Vorschaubilder da sind oder nicht ...
    file_exists
    dass diese dann in einem neuem Unterordner des eigentlichen Bildordners gespeichert werden?
    imagejpeg hat mehrere parameter. weißt du, wofür sie da sind? insb. der zweite.
    PHP-Code:
    while (list($key,$val)=each($_GET)) {
    ${
    $key} = $val; } 
    bist du dir über die gefahr dieses blocks im klaren?

    Kommentar


    • #3
      Mit file_exists wird doch nur überprüft ob eine Datei dabei ist. Wie mache ich es denn mit mehreren?

      Die Parameter von ImageJpeg werde ich mir mal genauer anschauen.

      Nein, was für eine Gefahr und wie kann ich diese beheben?

      Kommentar


      • #4
        Wie mache ich es denn mit mehreren?
        mit einer schleife.
        Nein, was für eine Gefahr und wie kann ich diese beheben?
        alles, was in die url geschrieben wird, wird zu einer variable gemacht. jeder hat den zugang zu dieser url. jeder hat also einen einfluss darauf, welche variablen in deinem skript gültig sind. so kann man versuchen, den ablauf des skriptes zu beeinflussen und u.u. böses erreichen. schau unter http://de.php.net/manual/en/function.extract.php

        Kommentar


        • #5
          Ich verstehe nicht genau, was das im Link genau bedeutet. Ich bin auch nicht gerade der Beste in PHP bzw. habe erst vor einiger Zeit angefangen. Der zweite Parameter von iamgejpeg gibt den Dateinamen an. Wenn ich aber noch keine Thumbnails erstellt habe, wie soll ich dann schauen, ob diese da sind oder niht wenn ich keinen Dateinamen habe?

          Kommentar


          • #6
            Wenn ich aber noch keine Thumbnails erstellt habe, wie soll ich dann schauen, ob diese da sind oder niht wenn ich keinen Dateinamen habe?
            wäre es nicht sinnvoll, eine konvention bzgl. der dateinamen für thumbnails einzuführen? dann könntest du den potentiellen dateinamen eines thumbnails berechnen. z.b. könntest du den präfix "thumb_" benutzen.

            Kommentar


            • #7
              Ich denke, dass die Thumbnails die selben Namen wie das Originalbild, allerdings würden sich diese dann in einem anderen Ordner, das heißt im Unterordner thumbsnails oder sowas befinden. Müsste ich ich diesen dann auch "berechnen"?

              Kommentar


              • #8
                wenn der originalname in $name gespeichert ist und die thumbnails in einem unterordner namens "thumbs" liegen, ist der zu überprüfende pfad
                Code:
                "thumbs/".$name

                Kommentar


                • #9
                  Zumindest sollen die Thumbnails dort liegen. Das heißt ich muss per Schleife überprüfen, ob sich das Bild dort befindet?

                  Kommentar


                  • #10
                    Original geschrieben von picco
                    Das heißt ich muss per Schleife überprüfen, ob sich das Bild dort befindet?
                    Nein.

                    Um zu fragen, gibt es das Bild "thumbs/xyz.jpg", brauchst du keine Schleife.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Ich will aber wissen, ob nun für jedes Bild ein Thumbnail vorhanden ist. Wenn ich beispielsweise neue Bilder in die Galerie reinkopiere, dann würden sie nicht erscheinen, oder sehe ich das falsch?

                      Kommentar


                      • #12
                        Man kann sich aber auch anstellen...

                        if(!isset($thumbdir.$filename)){
                        // mache thumb.....
                        }
                        Für Rechtschreibfehler übernehme ich keine Haftung!

                        Kommentar


                        • #13
                          Und wie genau sorge ich dafür, dass die thumbnails nun in den jeweiligen Unterordnern gespeichert werden? Jedes Verzeichnis soll ja den Ordner Thumbs erhalten, damit diese dort gespeichert werden können.

                          Kommentar


                          • #14
                            In dem du den "jeweiligen" Ordner als Pfad beim Speichern auf Platte mit angibst.
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              Das heißt ich muss nun für den Ordner einen neuen Pfad anlegen? Ich bin nun etwas verwirrt.

                              Also zunächst überprüfe ich, ob sich Vorschaugrafiken in den Ordnern befinden. Falls nicht sollen welche erstellt werden.

                              Mir geht es nun darum zu wissen, wie ich nun PHP sagen soll, dass ein Ordner erstellt werden soll und dass dort die Thumbnails gespeichert werden sollen.

                              Kommentar

                              Lädt...
                              X