Probleme mit Wasserzeichen bei Thumbnails

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme mit Wasserzeichen bei Thumbnails

    Hallo zusammen,

    Ich habe mir aus der image upload und thumbnail Klasse von erozion (http://www.php-resource.de/forum/sho...threadid=15033) eine Thumbnail Funktion erstellt, die auch soweit funktioniert. Was allerdings nicht laufen will, ist das Kopieren eines Wasserzeichens in die Bilder.

    Folgendermaßen sieht meine Funktion aus:
    PHP-Code:
    function create_thumbnail($image,  $width$save_dest$quality="75"$prefix 0$copywatermark 1) {
            
            
    $extension explode(".",$image);
            
    $file_pfad explode('/',$image);
            
    $file_pfad array_reverse($file_pfad);

            if(
    $extension[1] == 'jpg'$newimage = @imagecreatefromjpeg($image);
            elseif(
    $extension[1] == 'png'$newimage = @imagecreatefrompng($image);
            elseif(
    $extension[1] == 'gif'$newimage = @imagecreatefromgif($image);

            
    $imagewidth imagesx($newimage);
            
    $imageheight imagesy($newimage);

            
    $thumbnailwidth $width;
            
    $thumbnailheight intval$imageheight $thumbnailwidth $imagewidth);

            if(
    function_exists("imagecreatetruecolor")) $thumbnail imagecreatetruecolor($thumbnailwidth$thumbnailheight);
            else 
    $thumbnail imagecreate($thumbnailwidth$thumbnailheight);

            
    /*
            if($imagewidth > $imageheight) {
                $thumbnailwidth = $width;
                $thumbnailheight = round(($width / $imagewidth) * $imageheight);

                if($thumbnailheight < $height) {
                    $thumbnailwidth = round(($height / $thumbnailheight) * $thumbnailwidth);
                    $thumbnailheight = $height;
                }
            } else {
                $thumbnailwidth = round(($height / $imageheight) * $imagewidth);
                $thumbnailheight = $height;

                if($thumbnailwidth < $width) {
                    $thumbnailheight = round(($width / $thumbnailwidth) * $thumbnailheight);
                    $thumbnailwidth = $width;
                }
            }*/

            
    if(function_exists("imagecopyresampled"))
                
    imagecopyresampled($thumbnail$newimage0000$thumbnailwidth$thumbnailheight$imagewidth$imageheight);
            else
                
    imagecopyresized($thumbnail$newimage0000$thumbnailwidth$thumbnailheight$imagewidth$imageheight);
            if(
    $prefix == 1$pref 'thumbnail-';
            else 
    $pref '';
            
    $thumbnailsavepath $save_dest."/".$pref.$file_pfad[0];

            
    // Wasserzeichen
            
    $watermark imagecreatefrompng(ROOT_DIR 'equipment/watermark.png');

            
    $watermarkwidth imagesx($watermark);
            
    $watermarkheight imagesy($watermark);

            
    $transparent imagecolorat($watermark11);
            
    imagecolortransparent($watermark$transparent);

            
    imagecopymerge($newimage$watermark$imagewidth $watermarkwidth 10$imageheight $watermarkheight 1000$watermarkwidth$watermarkheight0);
            
    imagedestroy($watermark);
            
            if(
    $extension[1] == 'jpg'$check = @imagejpeg($thumbnail$thumbnailsavepath$quality);
            elseif(
    $extension[1] == 'png'$check = @imagepng($thumbnail$thumbnailsavepath$quality);
            elseif(
    $extension[1] == 'gif'$check = @imagegif($thumbnail$thumbnailsavepath$quality);
            
    imagedestroy($thumbnail);
            
            if(!
    $check) {
                
    imagedestroy($newimage);
                return 
    FALSE;
            } else {
                return 
    true;
            }
        } 
    Das Wasserzeichen, also die Datei, existiert 100%, das hab ich mehrmals ausprobiert, ein Fehler erscheint trotz error_reporting(E_ALL) nicht, er erstellt einfach das Thumbnail ohne Wasserzeichen.

    Wäre schön wenn ihr mir helfen könntet.

    Grüße, Oli

  • #2
    Vielleicht macht er das Wasserzeichen ja transparent?
    $transparent = imagecolorat($watermark, 1, 1);
    imagecolortransparent($watermark, $transparent);
    Wie viele Farben hat es denn original?
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar

    Lädt...
    X