Koontz: Bildupload per PHP

Hi Leutz,

meine Website soll die Möglichkeit bieten, Bilddateien per PHP hochzuladen. Die Dateien,die vom User hochgeladen werden, sollen jedoch vorher in der Grösse angepasst werden. Auch das soll automatisch per Skript geschehen. Beispiel: Der User möchte ein Bild von beispielsweise 320x240 Pixel hochladen. Auf der Website soll das Bild jedoch in 120x90 Pixel angezeigt werden. Das Skript soll nun die Grösse entsprechend ändern aber das Bild dabei nicht verziehen, sondern die überschüssigen Bildinformationen abschneiden. Gibt es so etwas vielleicht schon vorgefertigt (kostenlos!) oder wie kann man sich so etwas selbst basteln?

Gruss,
Koontz

  1. Hallo!

    meine Website soll die Möglichkeit bieten, Bilddateien per PHP hochzuladen. Die Dateien,die vom User hochgeladen werden, sollen jedoch vorher in der Grösse angepasst werden. Auch das soll automatisch per Skript geschehen. Beispiel: Der User möchte ein Bild von beispielsweise 320x240 Pixel hochladen. Auf der Website soll das Bild jedoch in 120x90 Pixel angezeigt werden. Das Skript soll nun die Grösse entsprechend ändern aber das Bild dabei nicht verziehen, sondern die überschüssigen Bildinformationen abschneiden. Gibt es so etwas vielleicht schon vorgefertigt (kostenlos!) oder wie kann man sich so etwas selbst basteln?

    Das es sowas fertig schon gibt bezweifele ich, selber basteln geht durchaus.
    Datei-Upload: http://www.dclp-faq.de/q/q-formular-upload-php4.html
    Bilddaten ermitteln: http://www.php3.de/manual/de/function.getimagesize.php
    Bilder bearbeiten: http://www.php3.de/manual/de/ref.image.php
    oder besser mit einem Komandozeilen-Bildeditor(leider fallen mir so keine Namen ein.)
    Aber Bildteile ausschneiden, das geht bestimmt auch irgendwie, aber da weiß ich nicht wie, könnte schwierig werden.

    Grüße
    Andreras

    1. Vielen Dank für Eure Hilfe. Werde mir das ganze mal ansehen :-)

  2. Hi,

    meine Website soll die Möglichkeit bieten, Bilddateien per PHP hochzuladen. Die Dateien,die vom User hochgeladen werden, [...] Auf der Website soll das Bild jedoch in 120x90 Pixel angezeigt werden.

    diese Aussage lässt mich darauf schliessen, dass das Anzeigen auf deiner Seite automatisch erfolgen soll!? Ich würde das noch mal überdenken. Wenn jetzt jemand daherkommt und in pornographisches oder rassistisches Bild (oder anderweitig strafbares Material) hochlädt ist es auf deiner Seite zu sehen bis Du es findest und löschst. ich glaube, damit machst Du Dich schon strafbar.
    Besser wäre also, die Bilder vor dem Anzeigen zu überprüfen per Hand.

    ciao
    romy

    --
    DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
    ->Alles ist gut wenn es aus Schokolade ist
  3. HAllo, hänge dir mal ein Script an was das tut was du willst.

    $image = "../upload_pics/$pfad/".$dname;   // Bilddatei

    $size = GetImageSize($image);
          $width = $size[0];
          $height = $size[1];
          $type = $size[2];
          $scale = $scale/100;
          $newwidth = 100; //round($width*$scale); die absolute neue breite
          $newheight = $height/($width/$newwidth); //round($height*$scale);

    if ($type == 1)
          {
                 $src = imagecreatefromgif("$image");
           $im = imagecreate($newwidth,$newheight);
           imagecopyresized($im,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
           imagegif($im,"../upload_pics/$pfad/thumbs/$dname",80);
           imagedestroy($im);

    }

    else if ($type == 2)
          {
                  $src = imagecreatefromjpeg("$image");
           $im = imagecreate($newwidth,$newheight);
           imagecopyresized($im,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
           imagejpeg($im,"../upload_pics/$pfad/thumbs/$dname",80);
           imagedestroy($im);

    }
          else if ($type == 3)
          {
                  $src = imagecreatefrompng("$image");
           $im = imagecreate($newwidth,$newheight);
           imagecopyresized($im,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
           imagepng($im,"../upload_pics/$pfad/thumbs/$dname",80);
           imagedestroy($im);

    }
          else
          {
           echo "Dieses Format wird nicht unterstüzt!";
          }

    Du musst nur noch den Speicherort ändern, und in $dname muss der Name der Datei stehen, und du musst den Pfad zum Originalbild anpassen.

    1. Hi,
      braucht man dazu nicht die GD Graphics Library, die in den aktuellen Versionen (ab 1.6) nicht mehr das gif-Format unterstützen.
      Hat ja auch nicht jeder zur Verfügung oder?

      Gruß riethmunk

      1. Hallo,

        natürlich, das GD Library hatte ich schon vorrausgesetzt?

        Gif wird nicht mehr unterstützt?? ist mir neu, aber danke für den Hinweis. Also, aus dem Script den GIF Teil löschen..

        sven

        1. Hoallo nochmal,

          gif wird nicht mehr unterstützt, da dafür Lizenzen in Form von Geld  verlangt wird. Es gibt ja eine gute Alternative mit dem png-Format.

          Gruß riethmunk