mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 28.03.2024 15:29 Benutzername: Passwort: Auto-Login

Thema: [PHP] Watermark Probleme vom 10.10.2006


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [PHP] Watermark Probleme
Autor Nachricht
Pukey
Threadersteller

Dabei seit: 07.09.2006
Ort: Mannheim/Heidelberg
Alter: 37
Geschlecht: Männlich
Verfasst Di 10.10.2006 16:39
Titel

[PHP] Watermark Probleme

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
ploehr

Dabei seit: 19.12.2005
Ort: UelzCoast
Alter: 43
Geschlecht: Männlich
Verfasst Mi 25.10.2006 11:15
Titel

Antworten mit Zitat Zum Seitenanfang

wo definierst du denn die farbwerte für den text? wenn die negativ sind, ist das anitaliasing deaktiviert. liegts evtl daran?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
 
Ähnliche Themen PHP Watermark und imageRotate
CSS Probleme IE VS FF
Probleme mit dem IE
Probleme mit PDF
CSS Probleme
probleme mit ie 6 und ie 7
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.