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
Wasserzeichen soll rechts unten sein...
- terminatorx120
- Mitglied
- Beiträge: 214
- Registriert: 19.02.2007 22:25
- Wohnort: Barmstedt
- Kontaktdaten:
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
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:
Musst du nur vorher die Abmessungen kennen, aber das geht ja ziemlich schnell mit z.b. [php:getimagesize].
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;
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
- terminatorx120
- Mitglied
- Beiträge: 214
- Registriert: 19.02.2007 22:25
- Wohnort: Barmstedt
- Kontaktdaten:
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);
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Direkt an den Browser senden:
[php:imagejpeg]
Vorher darf keinerlei Ausgabe stattfinden.
[php:imagejpeg]
Code: Alles auswählen
header('Content-type: image/jpeg');
imagejpeg($dst_img);
Zuletzt geändert von gn#36 am 29.11.2007 22:30, insgesamt 1-mal geändert.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
- terminatorx120
- Mitglied
- Beiträge: 214
- Registriert: 19.02.2007 22:25
- Wohnort: Barmstedt
- Kontaktdaten:
dann wird nur die URL angezeigt!
So habe ich es gemacht!
EDIT: Ohh es ist "imagejpeg", dann geht's!
Danke schön!
Funktioniert
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);
Danke schön!
Funktioniert