forum-user
Mitglied
Hallo Leute, wie ich schon mal erwähnte, bin ich neuling in Sachen PHP.
Ich versuche ein Script zu erstellen, mit dem ich ein Bild hochladen kann, was aber on the fly das bild skaliert und ein wasserzeichen einfügt.
Soweit funktioniert das skalieren und das Wasserzeichen einfügen. jedoch möchte ich das Wasserzeichen nicht oben links in der ecke stehen haben. Wo liegt mein gedanklicher Fehler.
PS.: Fehlerprüfungen habe ich erst mal hier weg gelassen.
Ich versuche ein Script zu erstellen, mit dem ich ein Bild hochladen kann, was aber on the fly das bild skaliert und ein wasserzeichen einfügt.
Soweit funktioniert das skalieren und das Wasserzeichen einfügen. jedoch möchte ich das Wasserzeichen nicht oben links in der ecke stehen haben. Wo liegt mein gedanklicher Fehler.
PS.: Fehlerprüfungen habe ich erst mal hier weg gelassen.
PHP:
<form action="upload.php" method="post" name="bild" enctype="multipart/form-data">
<input name="bild_laden" type="file" size="40">
<label>
<input type="submit" name="cmd_load" id="cmd_load" value="Datei hochladen" />
</label>
</form>
<?php
if (isset($_POST['cmd_load'])){
if($_FILES['bild_laden']['error'] > 0 ){
echo 'Problem: ';
switch ($_FILES['bild_laden']['error']){
case 1: echo 'Datei zu groß';
break;
case 2: echo 'Datei größer als max Größe';
break;
case 3: echo 'unvollständig geladen';
break;
case 4: echo 'nix hochgeladen';
break;
}
exit;
}
if($_FILES['bild_laden']['type'] != 'image/jpeg') {
echo 'Problem: '.$_FILES['bild_laden']['name']. ' ist keine JPEG-DATEI.';
exit;
}
if(is_uploaded_file($_FILES['bild_laden']['tmp_name'])){
if(!move_uploaded_file($_FILES['bild_laden']['tmp_name'], $upload_file)){
echo 'Konnte Datei nicht verschieben';
exit;
}
}
else {
echo 'Fehler beim Verarbeiten der Datei '.$_FILES['bild_laden']['name'];
exit;
}
// wasserzeichen
$wasserzeichen = 'wasserzeichen.jpg';
$wasserzeichen_size = getimagesize($wasserzeichen);
$wasserzeichen_x = $wasserzeichen_size[0];
$wasserzeichen_Y = $wasserzeichen_size[1];
// original bild
$oe_bild = $_POST['bild_laden'];
$oe_bild_size = getimagesize($oe_bild);
$oe_bild_x = $oe_bild_size[0];
$oe_bild_Y = $oe_bild_size[1];
// Bilder laden
$img_oeg_oe = imagecreatefromjpeg($oe_bild);
$img_oeg_wasserzeichen = imagecreatefromjpeg($wasserzeichen);
// Skalierung
$new_width = '800';
$new_height = intval($oe_bild_Y * $new_width / $oe_bild_x);
// Neues Bild erstellen
$res_img = imagecreatetruecolor($new_width, $new_height);
$res_img_temp = imagecopyresized ($res_img, $img_oeg_oe, 0, 0, 0, 0, $new_width,$new_height, $oe_bild_x, $oe_bild_Y);
// Wasserzeichen einfügen
imagecopy($res_img_tmp, $wasserzeichen, 0, 0, 50, 50, 150, 30);
imagedestroy ($res_img);
}
?>