Ankündigung

Einklappen
Keine Ankündigung bisher.

Bildformat ändern

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

  • Bildformat ändern

    Hallo. Ich schreibe grad eine Bildergalerie.. bin auch eigentlich schon fast fertig.. das einzige Problem was ich noch hab liegt beim Upload. Und zwar möchte ich einmal, dass alle Bilder als ".jpg" gespeichert werden. (Auch wenn Sie im Original .jpeg oder .JPG heißen.). Die Frage der Größenänderung hab ich ja schon gestellt... hab die Antwort aber auch nicht wirklich verstanden

    Vielen Dank im Voraus für eure Antworten...

    PS: also ich weiß wie ich die Bildgröße rauskriege und so - aber wie kann ich das neue Bild so speichern?


  • #2
    Wenn eine datei hochgeladen wird, dann wird sie von PHP erstmal irgendwo im System gespeichert und dann über einen befehl in den Webspace kopiert.
    Beim befehl der das bild kopiert kannst du auch eingeben in wie die endung sein soll...

    Also sagen wir mal du hast folgenden Script:

    PHP-Code:
    <input name="datei" type="file" size="30"/>
    <?
        /* Datei Typen
        image/jpeg                        = JPG Bild
        */

        if (isset($_FILES['datei'])) {
            $origname = $_FILES['datei']['name'];
            $tempname = $_FILES['datei']['tmp_name'];
            $filesize = $_FILES['datei']['size'];
            $filetype = $_FILES['datei']['type'];
            $filefolder = $_SERVER['DOCUMENT_ROOT'] . '/uploads/' .  basename($origname);
            move_uploaded_file($tempname, $filefolder);
    ?>
    So hast du den namen der datei in der Variable $origname was der name der datei ist, und anstatt der Variable kannst du z.B. schreiben:

    PHP-Code:
    $datum.".jpg" 
    oder sonst irgendwas, so wird die datei immer mit der endung jpg gespeichert...
    Und bei JPEG bildern ist es egal ob die endung JPG, oder JPEG ist es bleibt das selbe format.
    MFG
    DJ Nuno

    Kommentar


    • #3
      Aber hallo?! GIF != JPEG; PNG != JPEG
      PHP-Code:
      <?php
          
      function resaveAsJpeg($file) {
              
      $imginfo getimagesize($file); //Informationen zum Bild (Bildtyp ist fuer uns wichtig)
              
      $imgflag $imginfo[2]; //Hier haben wir den Bildtyp
              
      switch ($imginfo[2]) {
                  case 
      1:
                      
      $im = @imagecreatefromgif($file); //Bild ist ein GIF-Bild
                      
      break;
                  case 
      2:
                      
      $im = @imagecreatefromjpeg($file); //Bild ist ein JPG- bzw JPEG-Bild
                      
      break;
                  case 
      3:
                      
      $im = @imagecreatefrompng($file); //Bild ist ein PNG-Bild
                      
      break;
                  default: 
      //Keine Ahnung, ob das ueberhaupt ein Bild ist
                      
      $im false;
              }
              
              if (
      $im === false) die('Konnte Bild nicht erstellen');
              
              
      $filename basename($file); //bekomme lediglich den Namen der Datei, ohne Pfad
              
      $filedir dirname($file); //bekomme lediglich den Pfad, ohne Dateiname
              
              
      preg_match('/(.+?)(\.[\w]+)/'$filename$match); //filtere nur den Namen der Datei ohne Dateiendung
              
      $newfile $filedir.'/'.$match[1].'.jpg'//Erstelle neuen Dateinamen
              
      imagejpeg($im$newfile80); //Speichere Datei als JPEG mit einer Qualitaet von 80%
          
      }
      ?>
      www.citrosaft.com

      Kommentar


      • #4
        @Lumio: Das funktioniert aber natürlich nur, wenn man GD 1.8 oder höher eingebunden hat, sonst existieren diese Grafik-Funktionen nicht.

        Die andere Methode mit dem Umbenennen funktioniert unter Linux-Servern auch, da Linux auch ohne Dateiendung erkennt, um welches Format es sich handelt. Aber wenn GD verfügbar ist, ist die Variante von Lumio definitiv besser!

        Kommentar


        • #5
          Das ist mir bewusst, und ich weiss auch, dass die GD-Bibliotek bei den meisten existiert
          www.citrosaft.com

          Kommentar


          • #6
            Zitat von Lumio Beitrag anzeigen
            Aber hallo?! GIF != JPEG; PNG != JPEG
            So wie ich das verstanden habe möchte er nur JPEG Bilder mit der endung ".jpg" speichern, wenn ich das richtig verstanden habe trifft meine aussage zu jpeg = JPEG; jpg = JPEG;

            Wenn ich es falsch verstanden habe dann trifft natürlich deine aussage zu.
            MFG
            DJ Nuno

            Kommentar


            • #7
              Und zwar möchte ich einmal, dass alle Bilder als ".jpg" gespeichert werden. (Auch wenn Sie im Original .jpeg oder .JPG heißen.).
              Ich versteh das eher so, dass auch GIF-Bilder hochgeladen werden koennen.
              www.citrosaft.com

              Kommentar


              • #8
                also danke schonmal für die schnellen Antworten.. ich speicher die ja unter "nächtsfolgendebildummer.jpg" ... wusste garnet dass das reicht^^

                und wie mach ich das jetzt mit der Größe? also ich bekomm die ja mit
                $gr=GetImageSize($bild); heraus... also $gr[0] und $gr[1]... jetzt sollen die einmal normal kopiert werden.. (das funzt auch einwandfrei) und dann nochmal mit 150*100 ... (nicht proportional.. immer diese Größe!!)

                Kommentar


                • #9
                  die frage ist mehr wieso du die bild größe ändern willst?
                  wenn es nur darum geht die vorshau anzuzeigen kannst du einfach die größe beim ausgeben des bildes ändern, ist nicht gerade die schönste methode für ISDN user aber eine möglichkeit.

                  P.S. Falls jemand das als mist ansieht bitte bescheid geben bin schon viel zu müde vom ganzen coden und fehler suchen...
                  MFG
                  DJ Nuno

                  Kommentar


                  • #10
                    Das ist das schlechteste was man machen kann, egal was man für eine Leitung hat! Zum einen jagt es u.U. den Traffic hoch und zum anderen sehen auf diese Weise verkleinerte Bilder scheisse aus

                    Es gibt auch noch das schöne convert von ImageMagick!

                    Kommentar


                    • #11
                      mhmm.. also ich hab ja schon bei der "Großansicht" diese Version gewählt, um nicht unnötig Webspace zu verpfeffern, wenn er das bild als 500 mal X abspeichert und dann nochmal in voller Größe... aber die Thumbs sollten doch schnell geladen werden...bei der Einzelansicht isses ja kein Problem, weil ja immer nur ein Bild geladen werden muss...

                      Kommentar

                      Lädt...
                      X