Bild hochladen und größe verändern!!

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

  • Bild hochladen und größe verändern!!

    hallo!

    ich habe seit ewigkeiten ein script von einem Kumpel und war der annahme das das auch funktioniert, nun habe ich mal wieder zeit gefunden an meiner seite weiterzumachen und bin auf ein problem gestoßen wo ich einfach den fehler nicht finden kann!!!

    hier ist das script, und zwar funktioniert das abspeichern des bildes aber es wird nicht verkleinert egal wie groß es ist, und wenn ich ein GIF hochladen will kommt immer die meldung "Fatal error: Call to undefined function: imagegif() in H:\XAMPP\xampp\htdocs\v3\member\functions.inc.php on line 51"



    PHP-Code:
        //Prüft eine Datei od sie ein Bild ist ind gibt für den Fehlerfall eine Meldung aus
        
    function check_file($bildtmp) {
            if (!
    $size getimagesize($bildtmp)) {
                
    unlink($bildtmp);
                echo (
    '<p>Die hochgeladene Datei scheint kein Bild des Formates GIF, JPEG oder PNG zu sein</p>');
                echo (
    '<p>Aus Sicherheitsgründen wurde die Datei gelöscht</p>');
                die (
    '<a class="link" href="javascript:history.back();">[back]</a>');
            }
        }
        
    // Speichert ein Bild im angegebene Pfad und ändert falls nötig dessen Größe
        
        
    $size getimagesize($bildtmp);  ///hier liest du die eigenschaften des bildes im temporärordner des server aus
                
    if ($size[2] == 1)    {//GIF  ///Der Parameter [2] hinter size bestimmt den Dateityp
                    
    $picture_name $picture_name.'.gif';  //für size[2]==1 ist der dateityp gif .gif wird hier an den namen von vorhin angehängt
                    
    $picture_save_path $picture_path.$picture_name;  //hier wird der Pfad und der namen verbunden
                    
    copy($bildtmp,$picture_save_path); //hier wird das bild vom tempordnder des servers zum speicherpfad verschoben
                
    }
                if (
    $size[2] == 2)    {//JPG
                    
    $picture_name $picture_name.'.jpg';
                    
    $picture_save_path $picture_path.$picture_name;
                    
    copy($bildtmp,$picture_save_path);
                }
                if (
    $size[2] == 3)    {//PNG
                    
    $picture_name $picture_name.'.png';
                    
    $picture_save_path $picture_path.$picture_name;
                    
    copy($bildtmp,$picture_save_path);
                }
         function 
    save_minimize_picture($bildtmp$picture_path$picture_name$neueBreite$neueHoehe) {
            
    $size getimagesize($bildtmp);
            
    $breite $size[0];
            
    $hoehe $size[1];
            
            switch (
    $neueBreite) {
            case 
    0:
                
    $neueBreite intval($breite*$neueHoehe/$breite);
            break;
            }
            switch (
    $neueHoehe) {
            case 
    0:
                
    $neueHoehe intval($hoehe*$neueBreite/$breite);
            break;
            }
            if ((
    $size[0] <= $neueBreite) OR ($size[1] <= $neueHoehe)) {
                if(
    $size[2] == 1) {// GIF
                    
    $picture_name $picture_name.'.gif';
                    
    $picture_save_path $picture_path.$picture_name;
                    
    $altesBild ImageCreateFromGIF($bildtmp);
                    
    $neuesBild ImageCreateTrueColor($neueBreite,$neueHoehe);
                    
    ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
                    
    ImageGIF($neuesBild,$picture_save_path);
                }    
                if(
    $size[2] == 2) {// JPG
                    
    $picture_name $picture_name.'.jpg';
                    
    $picture_save_path $picture_path.$picture_name;
                    
    $altesBild ImageCreateFromJPEG($bildtmp);
                    
    $neuesBild ImageCreateTrueColor($neueBreite,$neueHoehe);
                    
    ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
                    
    ImageJPEG($neuesBild,$picture_save_path);
                }
                if(
    $size[2] == 3) {// PNG
                    
    $picture_name $picture_name.'.png';
                    
    $picture_save_path $picture_path.$picture_name;
                    
    $altesBild ImageCreateFromPNG($bildtmp);
                    
    $neuesBild ImageCreateTrueColor($neueBreite,$neueHoehe);
                    
    ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
                    
    ImagePNG($neuesBild,$picture_save_path);
                }
            }
            else {
    //Speichern falls keine Grössenänderung nötig ist
                
    if ($size[2] == 1)    {//GIF
                    
    $picture_name $picture_name.'.gif';
                    
    $picture_save_path $picture_path.$picture_name;
                    
    copy($bildtmp,$picture_save_path);
                }
                if (
    $size[2] == 2)    {//JPG
                    
    $picture_name $picture_name.'.jpg';
                    
    $picture_save_path $picture_path.$picture_name;
                    
    copy($bildtmp,$picture_save_path);
                }
                if (
    $size[2] == 3)    {//PNG
                    
    $picture_name $picture_name.'.png';
                    
    $picture_save_path $picture_path.$picture_name;
                    
    copy($bildtmp,$picture_save_path);
                }
            }
            
    unlink($bildtmp);
            return 
    $picture_name;
        } 
    könnte mir bitte jemand weiterhelfen ??

    danke
    MFG globefreak

  • #2
    Zeig ma den Code mit dem Aufruf der Fkt. save_minimize_picture(..) her.

    btw. dein Kumpel gehört für den Code geschlagen :P
    "Nemo ante mortem beatus."

    Kommentar


    • #3
      so hier der code wo die funktion aufgerufen wird!!

      PHP-Code:
      check_file($bildtmp);

      $picture_path 'member/bilder/';
      $picture_name 'member-pic-'.$nick;
      $_change['bild'] = $picture_path$picture_name
      $_change['bild'] = save_minimize_picture($bildtmp$picture_path$picture_name200150); 

      Kommentar


      • #4
        Ma, der Code is so oarg .. ich schreib dir das Ganze eben mal neu.
        "Nemo ante mortem beatus."

        Kommentar


        • #5
          Der Fatal-Error ist weg, der logische Fehler kA. Musst du mir sagen. Wenn er noch drinnen ist liegts an den Bedingungen in der if-Abfrage in save_minimize_picture(...) und die habe ich einfach von dir übernommen.

          PHP-Code:
              // prüft ob die datei ein bild ist, wenn ja gibt sie true zurück, ansonsten false
              
          function check_file($bildtmp) {
                  if(!
          getimagesize($bildtmp)) {
                      
          unlink($bildtmp);
                      echo 
          "<p>Die hochgeladene Datei scheint kein Bild des Formates GIF, JPEG oder PNG zu sein</p>
                            <p>Aus Sicherheitsgründen wurde die Datei gelöscht</p>');
                            <a class=\"link\" href=\"java script:history.back();\">[back]</a>"
          ;
                      return 
          false;
                  }
                  return 
          true;
              }

              
          // speichert die hochgeladene datei im gewünschten verzeichnis mit dem gewünschten name
              // falls alles klappt gibt sie true zurück, ansonsten false
              
          function save_file($bildtmp$picture_save_path$picture_name) {
                  
          $size getimagesize($bildtmp);
                  switch(
          $size[2]) {
                      case 
          1:
                          if(!
          copy($bildtmp$picture_save_path.$picture_name.".gif"))
                              return 
          false;
                          break;
                      case 
          2:
                          if(!
          copy($bildtmp$picture_save_path.$picture_name.".jpg"))
                              return 
          false;
                          break;
                      case 
          3:
                          if(!
          copy($bildtmp$picture_save_path.$picture_name.".png"))
                              return 
          false;
                          break;
                   }
                   return 
          true;
              }

              
          // speichert die hochgeladene datei im gewünschten verzeichnis mit dem gewünschten namen
              // sowie der gewünschten breite und der gewünschten höhe wenn bestimmte bedingungen zutreffen
              // wenn dies nicht der fall ist wird sie einfach mit ihren normalen maßen gespeichert
              
          function save_minimize_picture($bildtmp$picture_path$picture_name$neuebreite$neuehoehe) {
                  
          $size getimagesize($bildtmp);

                  if ((
          $size[0] <= $neuebreite) OR ($size[1] <= $neuehoehe)) {
                      
          $altesbild imagecreatfromgif($bildtmp);
                      
          $neuesbild imagecreatetruecolor($neuebreite$neuehoehe);

                      switch(
          $size[2]) {
                          case 
          1:
                              
          imagecopyresized($neuesbild$altesbild0,0,0,0$neuebreite$neuehoehe$size[0], $size[1]);
                              
          imagegif($neuesbild$picture_save_path.$picture_name.".gif");
                              break;
                          case 
          2:
                              
          imagecopyresized($neuesbild$altesbild0,0,0,0$neuebreite$neuehoehe$size[0], $size[1]);
                              
          imagejpeg($neuesbild$picture_save_path.$picture_name.".jpg");
                              break;
                          case 
          3:
                              
          imagecopyresized($neuesbild$altesbild0,0,0,0$neuebreite$neuehoehe$size[0], $size[1]);
                              
          imagegpng($neuesbild$picture_save_path.$picture_name.".png");
                              break;
                      }
                  } else {
                      switch(
          $size[2]) {
                          case 
          1:
                              
          save_file($bildtmp$picture_save_path$picture_name);
                              break;
                          case 
          2:
                              
          save_file($bildtmp$picutre_save_path$picture_name);
                              break;
                          case 
          3:
                              
          save_file($bildtmp$picture_save_path$picture_name);
                              break;
                      }
                  }
              } 
          Zuletzt geändert von oBeLx; 19.07.2006, 21:04.
          "Nemo ante mortem beatus."

          Kommentar


          • #6
            alter das ist ja ober cool.... ich danke dir wie verrückt!!

            Kommentar

            Lädt...
            X