Hier jetzt der gesamte Code:
Anfangs wird alles mögliche geprüft, dann wird eine erste Grafik erstellt, mit einer Breite von 500px (Höhe ist variabel; wird angepasst), und zuletzt sollte noch ein Thumbnail erstellet werden mit einer Größe von 100*100px, wie bereits erwähnt - wichtig dabei ist, das das Thumbnail nicht verzerrt ist. Bei dem folgenden Code wird auch die zweite Grafik nur verkleinert, das "ausschneiden" krieg ich einfach nicht hin... wäre aber sehr wichtig - mache eine Page für einen Architekten, und der nimmt jedes Detail sehr ernst : (
<? $filesize = 3145728; //entspricht 3 MB
$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";
}
}
echo $_FILES['bildupload']['error'];
if( $fehler != "" ) {
echo $fehler;
} else {
//Bearbeiten und speichern der Bilder
$filelocation = 'images/sites/';
$newfilename = $_POST['id'].'.jpg';
if((move_uploaded_file($_FILES['bildupload']['tmp_name'],$filelocation.$newfilename))) {
//Anpassen der Größe Hauptbild
$size = GetImageSize($filelocation.$newfilename);
$breite = $size[0];
$hoehe = $size[1];
$neueBreite = 500;
$neueHoehe = intval($hoehe*$neueBreite/$breite);
$altesBild = ImageCreateFromJPEG($filelocation.$newfilename);
$neuesBild = imagecreatetruecolor($neueBreite, $neueHoehe);
imagecopyresampled($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
ImageJPEG($neuesBild,$filelocation.$_POST['id'].'.jpg');
//Anpassen der Größe Vorschaubild
$size = GetImageSize($filelocation.$newfilename);
$breite = $size[0];
$hoehe = $size[1];
if( $size[0] < $size[1] ) {
$neueBreite = 100;
$neueHoehe = intval($hoehe*$neueBreite/$breite);
} else {
$neueHoehe = 100;
$neueBreite = intval($breite*$neueHoehe/$hoehe);
}
$altesBild = ImageCreateFromJPEG($filelocation.$newfilename);
$neuesBild = imagecreatetruecolor($neueBreite, $neueHoehe);
imagecopyresampled($neuesBild,$altesBild, 0,0, 0,0, $neueBreite,$neueHoehe, $breite,$hoehe);
ImageJPEG($neuesBild,$filelocation.$_POST['id'].'_Preview.jpg');
echo 'Bildupload für ID '.$_POST['id'].' war erfolgreich!';
} else {
echo 'Fehler!';
}
}
} ?>