Wasserzeichen soll rechts unten sein...

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
terminatorx120
Mitglied
Beiträge: 214
Registriert: 19.02.2007 22:25
Wohnort: Barmstedt
Kontaktdaten:

Wasserzeichen soll rechts unten sein...

Beitrag 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
MfG
TerminatorX120
http://www.KeepGaming.de
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag 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].
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.
Benutzeravatar
terminatorx120
Mitglied
Beiträge: 214
Registriert: 19.02.2007 22:25
Wohnort: Barmstedt
Kontaktdaten:

Beitrag 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); 
MfG
TerminatorX120
http://www.KeepGaming.de
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag 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.
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.
Benutzeravatar
terminatorx120
Mitglied
Beiträge: 214
Registriert: 19.02.2007 22:25
Wohnort: Barmstedt
Kontaktdaten:

Beitrag 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
MfG
TerminatorX120
http://www.KeepGaming.de
Antworten

Zurück zu „Coding & Technik“