Samoht: imagecopyresized - proportionstreue Thumbnails

Beitrag lesen

Gudn!

<? $filesize  = 3145728; //entspricht 3 MB

Tipp: Verwende keine short-tags sondern <?php

$fehler  = "";

if($_POST['id']!='') {
  if(!is_uploaded_file($_FILES['bildupload']['tmp_name'])) {
   $fehler = "Es wurde keine Datei ausgewählt oder der Upload-Vorgang wurde gestört";
  } else {
   if( $_FILES['bildupload']['size'] > $filesize ) {
    $fehler = "Die Datei ist zu groß! Die maximale Bildgröße darf 3 MB betragen.";
   }
   if( !$_FILES['bildupload']['type'] == 'image/jpeg' ) {
    $fehler = "Dieser Dateityp ist nicht zulässig!<br>Es dürfen nur Bilder im JPEG-Format (.jpg / .jpeg) hochgeladen werden";
   }

unzureichende Prüfung bzgl. Bilder. Wurde hier schon öfters diskutiert. Außerdem übergibt der IE beispielsweise 'image/pjpeg'. Verwende getimagesize()

Zum Code:

Ich finde es etwas unübersichtlich dass Du gleiche Variablen für verschiedene Sachen verwendest.

Zum Vorgehen allgemein:

  • Verkleinertes Bild erstellen (machst Du bereits)
  • Thumbnail erstellen mit 100px Breite und dazu passender Höhe (imagecopyresampled, so wie schon von dir umgesetzt)
  • o.g. Thumbnail _nochmal_ mit imagecopyresampled bearbeiten und zwar mit den folgenden parametern:

imagecopyresampled ($neuesthumbnail,$altesthumbnail,0,0,0,0,100,100,100,100)

das sollte dann funktionieren.
Die ersten zwei 100er geben die Zielgröße des Ausschnitts an, die nächsten zwei 100er die Ursprungsgröße des Ausschnitts. Die 0er sind die Koordinaten.
Vorher muss natürlich noch mit imagecreatetruecolor ein neues Bild erstellt werden - auch mit den Maßen 100x100.

Gruß aus Fürth in Mittelfranken,
Samoht

--
fl:| br:> va:) ls:< n4:( ss:) de:] js:| mo:}