Hi
Ich möchte via upload ein service realisieren nur klappt es nicht;(
Und zwar ein upload wenn ein user bild x hochläd (das klappt)
soll sich ein bild y drüber legen was an bestimten stellen transparent ist (klappt bedingt)
Mein Code:
Alles anzeigen
Das Bild x müsste auch an der position bei bild y wo die transparenz ist
Wer kann mir helfen?
Das habe ich schon...
[Blockierte Grafik: http://gen.gs-dienstleistungen.de/pictexte/uploads/0ea5fe858d.jpg]
Ich möchte via upload ein service realisieren nur klappt es nicht;(
Und zwar ein upload wenn ein user bild x hochläd (das klappt)
soll sich ein bild y drüber legen was an bestimten stellen transparent ist (klappt bedingt)
Mein Code:
PHP-Quellcode
- [syntax="php"]<b>Upload</b>
- <?php
- function watermark($image, $watermark, $save_as, $position=5, $transparency=50, $t_x=0, $t_y=0) {
- // erlaubt sind png und jpeg
- if($position < 1 || $position > 9)
- return FALSE;
- if(!file_exists($image) || !file_exists($watermark))
- return FALSE;
- $infos_img = getimagesize($image);
- $infos_wat = getimagesize($watermark);
- if(!in_array($infos_img[2], array(2,3)) || !in_array($infos_wat[2], array(2,3)))
- return FALSE;
- if($infos_img[0]<$infos_wat[0] || $infos_img[1]<$infos_wat[1])
- return FALSE;
- if($infos_wat[0]<$t_x || $infos_wat[1]<$t_y)
- return FALSE;
- $transparency = 100 - $transparency;
- if($transpareny < 0 || $transpareny > 100)
- return FALSE;
- // Position x
- switch (($position-1)%3) {
- case 0:
- $pos_x = 0;
- break;
- case 1:
- $pos_x = round(($infos_img[0]-$infos_wat[0])/2, 0);
- break;
- case 2:
- $pos_x = $infos_img[0]-$infos_wat[0];
- break;
- }
- // Position y
- switch (floor(($position-1)/3)) {
- case 0:
- $pos_y = 0;
- break;
- case 1:
- $pos_y = round(($infos_img[1]-$infos_wat[1])/2, 0);
- break;
- case 2:
- $pos_y = $infos_img[1]-$infos_wat[1];
- break;
- }
- // watermark-procedure
- if($infos_img[2] == 2)
- $img_image = imagecreatefromjpeg($image);
- if($infos_img[2] == 3)
- $img_image = imagecreatefrompng($image);
- if($infos_wat[2] == 2)
- $img_watermark = imagecreatefromjpeg($watermark);
- if($infos_wat[2] == 3)
- $img_watermark = imagecreatefrompng($watermark);
- imagealphablending($img_image, TRUE);
- imagealphablending($img_watermark, TRUE);
- imagecolortransparent($img_watermark, imagecolorat($img_watermark, $t_x, $t_y));
- imagecopymerge($img_image, $img_watermark, $pos_x, $pos_y, 0, 0, $infos_wat[0], $infos_wat[1], $transparency);
- if(strtolower(substr($save_as, -3)) == "png") {
- if(imagepng($img_image, $save_as))
- return TRUE;
- else
- return FALSE;
- } else {
- if(imagejpeg($img_image, $save_as))
- return TRUE;
- else
- return FALSE;
- }
- return FALSE;
- }
- if ($_POST['step'] == "upload")
- {
- if ($_FILES['datei']['error'])
- {
- $error = "<p>Folgende(r) Fehler ist aufgetreten:</p>";
- $error .= "<li>Allgemeiner Fehler</li>";
- }
- if ($_FILES['datei']['size'] > 1000000)
- {
- $error = "<p>Folgende(r) Fehler ist aufgetreten:</p>";
- $error .= "<li>Datei zu groß</li>";
- }
- if(isset($error))
- {
- echo $error;
- }
- else
- {
- $dir = 'uploads';
- $filename = $_FILES['datei']['name'];
- move_uploaded_file($_FILES['datei']['tmp_name'], $dir."/".$filename);
- print"<p>Upload erfolgreich!</p>$filename<br><img src=$dir/$filename width=100 height=100>";
- if(watermark("$dir/$filename", "$dir/brand.png", "$dir/$filename", 1))
- echo "<img src=\"$dir/$filename\">
- ";
- }
- }
- else
- {
- print'<p>Datei wählen:</p>
- <form action="up.php?action=upload" method="post" enctype="multipart/form-data">
- <input type="file" name="datei">
- <input type="hidden" name="step" value="upload"><br><br>
- <input type="submit" value="Datei hochladen">
- </form>
- ';
- }
- ?>[/syntax]
Das Bild x müsste auch an der position bei bild y wo die transparenz ist
Wer kann mir helfen?
Das habe ich schon...
[Blockierte Grafik: http://gen.gs-dienstleistungen.de/pictexte/uploads/0ea5fe858d.jpg]