Pukey
Threadersteller
Dabei seit: 07.09.2006
Ort: Mannheim/Heidelberg
Alter: 37
Geschlecht:
|
Verfasst Di 10.10.2006 17:39
Titel [PHP] Watermark Probleme |
|
|
Ich hab mir hier ein upload script gebastelt was das original bild mit einem wasserzeichen(watermark) versehen soll. es klappt ja ganz gut, aber wie ihr bei folgendem Bild seht, sieht das logo rechts unten sehr unsauber aus.
Wäre nett jemand mir die Ursache und eine Lösung sagen könnte, wie ich dieses unnötige schwarze außenrum weg bekomme.
hier ist mla der code des script:
Code: | if($mode=="pic_upload")
{
$filename=$_FILES['file']['name'];
$file=$_FILES['file']['tmp_name'];
function createRandomPassword() {
$chars = "abcdefghijkmnopqrstuvwxyz023456789";
srand((double)microtime()*1000000);
$i = 0;
$pass = '' ;
while ($i <= 7) {
$num = rand() % 33;
$tmp = substr($chars, $num, 1);
$pass = $pass . $tmp;
$i++;
}
return $pass;
}
function watermark($image, $watermark, $save_as, $t_x, $t_y, $s_w_w, $s_w_h, $position=5, $transparency=15) {
// 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;
//@unlink($save_as);
// 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));
$pos_x=$s_w_w;
$pos_y=$s_w_h;
$infos_wat[0]="375";
$infos_wat[1]="500";
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;
}
// Usage
$filename = createRandomPassword();
$filename=$filename.".jpg";
if(copy($file,"partypics/$filename"))
{
if(move_uploaded_file($file,"../partypics/$filename"))
{
$dir = '../partypics';
move_uploaded_file($file, $dir."/".$filename);
print"<p>Upload erfolgreich!</p>$filename<br><img src=$dir/$filename width=100 height=100>";
$dir_file=$dir."/".$filename;
chmod ($dir_file, 0777);
$getimagesize_art = getimagesize($dir."/".$filename);
if($getimagesize_art[0]>$getimagesize_art[1])
{
//längskant
$set_w_w="330";
$set_w_h="320";
}
else {
if($getimagesize_art[0]<$getimagesize_art[1])
{
//hochkant
$set_w_w="205";
$set_w_h="445";
}
}
if(watermark("$dir/$filename", "$dir/brand.png", "$dir/$filename", "0", "0", "$set_w_w", "$set_w_h"))
$link=$_PAGE_URL."partypics/".$filename;
$size = getimagesize($link);
$height = $size[1];
$width = $size[0];
if ($height > 100)
{
$height = 100;
$percent = ($size[1] / $height);
$width = ($size[0] / $percent);
}
else if ($width > 100)
{
$width = 100;
$percent = ($size[0] / $width);
$height = ($size[1] / $percent);
}
echo "<img src='$link' width='$width' height='$height'>";
}
}
else{
echo 'Fehler!';
}
} |
MFG & THX
Pukey
|
|