Also da der letzte Thread eine Diskussion von Therapie-Bedürftigen auslöste, hier ein neuer, weil ich möchte dass das Forums-Archiv auch was davon hat.
Felix Riester schrieb:
Kompliment, das ist mal eine wirklich unmissverständliche Problembeschreibung! (ernst gemeint!) Da kann man jetzt ansetzen.
Also das Bild wird hochgeladen und dein Script "nimmt es entgegen" und speichert es vorläufig ab. Danach wird das Bild resized, um es auf eine vernünftige Auflösung zu verkleinern. Danach wir es in den endgültigen Bestimmungs-Ordner gespeichert. - Fertig!
Und in PHP...? Ich habe folgendes Script für unsere Schulhomepage programmiert, da auf der Startseite Bilder von Unterseiten angezeigt werden sollen, diese aber mit einer festen maximalen Auflösung (wird als Variablen übergeben). Wie man sehen kann, legt das Script eine neue Bilddatei an, da auf unserer Page das Original nicht verändert werden soll. Ich poste Dir hier meinen Code. Möge er Dir nützen:
// Funktion zum Verkleinern eines Bildes, sofern die Maße des Bildes
// die maximal erlaubten Maße übersteigen.
function thumbnail_erstellen($bildpfad, $dateiname, $maxx, $maxy)
{
if($bildpfad == "") return;
// Bilddatei ausmessen
$bildtyp = exif_imagetype($bildpfad);
$bilddimensionen = getimagesize($bildpfad);
$originalx = $bilddimensionen[0];
$originaly = $bilddimensionen[1];
switch($bildtyp)
{
case IMAGETYPE_JPEG:
$bild = imagecreatefromjpeg($bildpfad);
break;
case IMAGETYPE_GIF:
$bild = imagecreatefromgif($bildpfad);
break;
case IMAGETYPE_PNG:
$bild = imagecreatefrompng($bildpfad);
break;
default:
$bild = imagecreatetruecolor($maxx, $maxy);
}
// Skalierung vornehmen
$ratio = $originalx / $originaly;
if($bilddimensionen[0] > $maxx)
{
$bilddimensionen[0] = $maxx;
$bilddimensionen[1] = floor($maxx / $ratio);
}
if($bilddimensionen[1] > $maxy)
{
$bilddimensionen[1] = $maxy;
$bilddimensionen[0] = floor($maxy * $ratio);
}
// Thumbnail erstellen
$thumbnail = imagecreatetruecolor($bilddimensionen[0], $bilddimensionen[1]);
imagefill($thumbnail, 0, 0, 0xFFFFFF); // white color (#FFFFFF)
imagecopyresampled($thumbnail, $bild, 0, 0, 0, 0, $bilddimensionen[0], $bilddimensionen[1], $originalx, $originaly);
// Thumbnail abspeichern
if(strpos($dateiname, " ") > 0) $dateiname = substr($dateiname, 0, strpos($dateiname, " "));
$thumbnail_datei = substr($bildpfad, 0, strpos($bildpfad, "../w")+2)."/images/tn_".strtolower($dateiname).".jpg"; // Das wist Du anders lösen.
$thumbnail_datei_test = fopen($thumbnail_datei, "wb+");
fclose($thumbnail_datei_test);
imagejpeg($thumbnail, $thumbnail_datei);
imagedestroy($thumbnail);
}
Liebe Grüße aus Ellwangen,
Felix Riesterer.