Seite 1 von 1
Wasserzeichen soll rechts unten sein...
Verfasst: 29.11.2007 17:05
von terminatorx120
Hallihallo,
ich stehe vor einem Problem.
Ich habe eine einfache Funktion um ein Wasserzeichen über ein Bild zu legen, aber leider schaffe ich es nicht, dass das Wasserzeichen immer (bei jeder Bildgröße) rechts unten ist!
Weiß jemand eine möglichkeit, wie man dies mit der Originalgröße des Bildes errechnen kann? ($sourcefile_width=imageSX($sourcefile);
$sourcefile_height=imageSY($sourcefile);)
Ich benutze
Imagecopy
Danke
Verfasst: 29.11.2007 20:03
von gn#36
Dann stell doch mal deine bisherigen Versuche zur Verfügung.
Generelle Überlegung dazu:
Angegeben wird bei annähernd allen Funktionen in dieser Art immer die Position der linken, oberen Ecke. Wenn du also die größe des Wasserzeichens kennst und die Größe des Originals kannst du die Position eigentlich ziemlich leicht festlegen:
Code: Alles auswählen
$x_ziel = $width_bild - $width_wasser;
$y_ziel = $height_bild - $height_wasser;
Musst du nur vorher die Abmessungen kennen, aber das geht ja ziemlich schnell mit z.b. [php:getimagesize].
Verfasst: 29.11.2007 22:10
von terminatorx120
Ich arbeite nun auch mit einem anderem Script, das die Datei direkt speichert, aber wie kann ich es anzeigen lassen?
Code: Alles auswählen
//watermark machen
$newImgName = "war3-logo-preview";
$size_img = GetImageSize("war3-logo-preview.jpg");
$img_width = $size_img[0];
$img_height = $size_img[1];
chmod ("war3-logo-preview.jpg", 0777);
$dst_img = imagecreatefromjpeg("war3-logo-preview.jpg");
$burn_img = imagecreatefrompng("wasserzeichen.png");
$logoW = ImageSX($burn_img);
$logoH = ImageSY($burn_img);
//imagealphablending($dst_img, true); // Falls das Logo keine Transparenz hat raus nehmen!
$pos_x = $img_width - $logoW;
$pos_y = $img_height - $logoH;
imagecopy($dst_img, $burn_img, $pos_x, $pos_y, 0, 0, $logoW, $logoH);
imagejpeg($dst_img,$newImgName.'.jpg',100);
imagedestroy($dst_img);
Verfasst: 29.11.2007 22:21
von gn#36
Direkt an den Browser senden:
[php:imagejpeg]
Code: Alles auswählen
header('Content-type: image/jpeg');
imagejpeg($dst_img);
Vorher darf keinerlei Ausgabe stattfinden.
Verfasst: 29.11.2007 22:26
von terminatorx120
dann wird nur die URL angezeigt!
So habe ich es gemacht!
Code: Alles auswählen
$newImgName = "war3-logo-preview";
$size_img = GetImageSize("war3-logo-preview.jpg");
$img_width = $size_img[0];
$img_height = $size_img[1];
chmod ("war3-logo-preview.jpg", 0777);
$dst_img = imagecreatefromjpeg("war3-logo-preview.jpg");
$burn_img = imagecreatefrompng("wasserzeichen.png");
$logoW = ImageSX($burn_img);
$logoH = ImageSY($burn_img);
//imagealphablending($dst_img, true); // Falls das Logo keine Transparenz hat raus nehmen!
$pos_x = $img_width - $logoW;
$pos_y = $img_height - $logoH;
imagecopy($dst_img, $burn_img, $pos_x, $pos_y, 0, 0, $logoW, $logoH);
header('Content-type: image/jpeg');
imagejpg($dst_img);
imagedestroy($dst_img);
EDIT: Ohh es ist "imagejpeg", dann geht's!
Danke schön!
Funktioniert