Gallerie-Script: Kleine Vorschaubilder erstellen

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

  • Gallerie-Script: Kleine Vorschaubilder erstellen

    Hi!

    Jo, brauche mal Hilfe ^^
    also, ich habe mir nen Galleriescript, basierend auf mysql gebastelt...da ich nicht möchte das in der preview, wo die bilder kurz vorgeführt werden, damit man die, die interessant aussehen anklicken kann, in voller größe geladen werden, versuche ich die via php zu verkleinern...
    das problem ist nur...wenn ich den skript ausführe, dann läd sich apache kaputt (teste es ja vorher auf meinem pc hier)...ich bin auch nicht gerade ein php-anfänger, aber habe noch nicht viel mit den image-functionen zu tun gehabt Oo
    naja, ich poste mal meinen code, hoffe hier kann mir jemand helfen, und mir sagen warum sich apache dadurch totlädt ^^

    und die exportierte sql-tabelle habe ich auch mal dazugeschrieben für das evtl. bessere verständniss

    PHP-Code:
    <?php
    /*
    -- 
    -- Tabellenstruktur für Tabelle `gallerie`
    -- 

    CREATE TABLE `gallerie` (
      `id` int(10) NOT NULL auto_increment,
      `pic_title` varchar(255) NOT NULL default '',
      `pic_desc` varchar(255) NOT NULL default '',
      `file_name` varchar(255) NOT NULL default '',
      `hits` varchar(20) NOT NULL default '0',
      PRIMARY KEY  (`id`)
    ) TYPE=MyISAM AUTO_INCREMENT=5 ;

    -- 
    -- Daten für Tabelle `gallerie`
    -- 

    INSERT INTO `gallerie` VALUES (1, 'Test', 'Ich', 'me_new.jpg', '0');
    INSERT INTO `gallerie` VALUES (2, 'Test 2', 'Ich 2', 'hc_014.jpg', '0');
    INSERT INTO `gallerie` VALUES (3, 'Test 3', 'Ich 3', '1018_190820.jpg', '0');
    INSERT INTO `gallerie` VALUES (4, 'Test 4', 'Ich 4', '000_164.JPG', '0');
    */

    // Einstellungen
    $max_width 157// Maximale Breite der Vorschau-Bilder
    $max_height 135// Maximale Höhe der Vorschau-Bilder
    $gallerie_dir 'images/gallerie'// Ordnerpfad der Bilder
    $preview_dir 'images/gallerie/kl'// Ordnerpfad der Vorschau-Bilder
    $proportion 2;    /* Muss größer als 1 sein,
    je kleiner desto besser die Preview und desto höher die Recourcen-Auslastung*/

    $query mysql_query("SELECT *
    FROM `gallerie`
    ORDER BY `id` DESC
    LIMIT 0 , 30"
    );
    $anz mysql_num_rows($query);

    while (
    $picture mysql_fetch_assoc($query)) {
        if (
    file_exists($gallerie_dir.'/'.$picture['file_name'])) {
            if (!
    file_exists($preview_dir.'/'.$picture['file_name'])) {
                
    // Preview erstellen
                
    $size getimagesize($gallerie_dir.'/'.$picture['file_name']);
    // höhe und breite des bildes
                
    $size_width $size[0];
                
    $size_height $size[1];
                
    $size_type $size[2]; // 1 = GIF, 2 = JPG, 3 = PNG, SWF = 4
                
    while ($size_width $max_width OR $size_height $max_height)
                { 
    $new_size_width $size_width/$proportion;
                
    $new_size_height $size_height/$proportion; }
    // Preview-Größe Proportional brechnen
                //echo 'Width: '.$size_width.' Height: '.$size_height.' Type: '.$size_type;
                //echo ' New-Width: '.$new_size_width.' New-Height: '.$new_size_height;
                
    if ($size_type == 1)
                    
    $im imagecreatefromgif($gallerie_dir.'/'.$picture['file_name']);
    // Großes Bild
                
    if ($size_type == 2)
                    
    $im imagecreatefromjpeg($gallerie_dir.'/'.$picture['file_name']);
    // Großes Bild
                
    if ($size_type == 3)
                    
    $im imagecreatefrompng($gallerie_dir.'/'.$picture['file_name']);
    // Großes Bild
                
                
    $small imagecreatetruecolor($max_width$max_height);
                
                
    imagecopyresampled($small$im0000$new_size_width,
                
    $new_size_height$size_width$size_height);
                
                
    imagedestroy($im); // Speicher freigeben
                
                
    if ($size_type == 1)
                    
    imagegif($small$preview_dir.'/'.$picture['file_name'], 100);
    // Datei als GIF speichern
                
    if ($size_type == 2)
                    
    imagejpeg($small$preview_dir.'/'.$picture['file_name'], 100);
    // Datei als JPEG speichern
                
    if ($size_type == 3)
                    
    imagepng($small$preview_dir.'/'.$picture['file_name'], 100);
    // Datei als PNG speichern
                
                
            
    }
            echo 
    '<a href="'.$gallerie_dir.'/'.$picture['file_name'].'">
            <img src="'
    .$preview_dir.'/'.$picture['file_name'].'" border="0"></a>';
        }
    }
    ?>
    sorry, hab den code richtig umgebrochen
    Zuletzt geändert von Spezial; 19.12.2005, 14:39.
    ...Spezial hat gesprochen!

  • #2
    Bitte brich deinen Code so um, dass man nicht nach rechts scrollen muß (s. Forumregeln). Danke.

    Kommentar


    • #3
      kann mir keiner helfen? oda kennt noch jemand ne andere methode um bilder zu verkleinern und diese woanders abzuspeichern?
      ...Spezial hat gesprochen!

      Kommentar


      • #4
        Hast du mal versucht den Pfad zu den Dateien komplett auszuschreiben? Also zb: $_SERVER["DOCUMENT_ROOT"]/deine_seite/etc ? Ansonsten sehe ich bei dem Script kein direktes Problem? So in etwa hab ich meins auch, allerdings mit dem kompletten Pfad zu den Dateien.

        Kommentar


        • #5
          habs eben ausprobiert...hilft nix trotzdem lädt der noch und es passiert genau nichts....
          gibt es nicht vielleicht noch ne andere möglichkeit bilder zu verkleinern und abzuspeichern?
          ...Spezial hat gesprochen!

          Kommentar


          • #6
            Was für ein Betriebssystem setzt du ein ?


            Gruss

            tobi
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              Mit diesem Script sollte man das gewünschte Bild verkleinern können.

              PHP-Code:
              // Bild verkleinern und im Ornder "thumbs" speichern ***************************
              $scale  6;
              $size   getimagesize("pfad/dateiname.jpg");
              $width  round($size[0]/$scale);
              $height round($size[1]/$scale);
              $src    imagecreatefromjpeg(pfad/dateiname.jpg);
              $dest   imagecreatetruecolor($width,$height);
                                  
              $strFileSize round($strFileSize/1024);
              imagecopyresampled($dest,$src,0,0,0,0,$width,$height,$size[0],$size[1]);
              imagejpeg($dest,"../images/thumbs/wunschverzeichnis/dateiname.jpg",100);

              imagedestroy($dest);
              imagedestroy($src); 
              Hochachtungsvoll
              pingzaong

              Kommentar


              • #8
                Ich sehe da direkt keine Fehler, ist aber auch nciht leicht alles zu druchblicken. Probier mal erst mal einfach mit einer direkten Pfadangabe und nur einem Bild, ob dein Script funktioniert...

                Kommentar


                • #9
                  Original geschrieben von jahlives
                  Was für ein Betriebssystem setzt du ein ?


                  Gruss

                  tobi
                  als testserver? kP, ist apache, XAMPP...ich selber hab XP Pro


                  @archie:
                  hatte ich schonmal, war aber der gleiche fehler, ist nichts passiert...

                  @pingzaong:
                  thx, probier ich ma aus
                  ...Spezial hat gesprochen!

                  Kommentar


                  • #10
                    ich bin doch so blöd

                    ich hab den fehler gefunden:
                    eine endlosschleife deswegen kam der script auch nicht zum ende

                    die hier:
                    PHP-Code:
                    while ($size_width $max_width OR $size_height $max_height) {
                    $new_size_width $size_width/$proportion;
                    $new_size_height $size_height/$proportion;
                    // Preview-Größe Proportional brechnen 
                    die variablen $new_size_width und $new_size_height sind falsch.
                    der script funktioniert mit:

                    PHP-Code:
                    while ($size_width $max_width OR $size_height $max_height) {
                    $size_width $size_width/$proportion;
                    $size_height $size_height/$proportion;
                    // Preview-Größe Proportional brechnen 
                    danke für die hilfe
                    ...Spezial hat gesprochen!

                    Kommentar

                    Lädt...
                    X