1. #1
    sarnath's Avatar
    Registered
    07/11/03
    Location
    Bree
    Posts
    6,239
    iTrader
    158 (99%)
    Mentioned
    0 Post(s)
    Reputation
    0/0

    GD Library : Watermerk plaatsen

    Dag iedereen, ik ben een beetje aan het experimenteren met de GD functies, ik zou graag automatisch een watermerk laten toevoegen op een afbeelding, wat nu nog via een aparte applicatie gebeurt.

    Ik heb hiervoor volgend script geschreven :

    Code:
    <?php
    header('content-type: image/jpeg');
    $watermerk = imagecreatefrompng('watermerk.png');
    $watermerk_width = imagesx($watermerk);
    $watermerk_height = imagesy($watermerk);
    $image = imagecreatetruecolor($watermerk_width, $watermerk_height);
    $image = imagecreatefromjpeg("testimage.jpg");
    $size = getimagesize("testimage.jpg");
    $dest_x = $size[0] - $watermark_width - 320;
    $dest_y = $size[1] - $watermark_height - 50;
    imagecopymerge($image, $watermerk, $dest_x, $dest_y, 0, 0,
    $watermerk_width, $watermerk_height, 100);
    imagejpeg($image);
    imagedestroy($image);
    imagedestroy($watermerk);
    ?>
    De hoofdafbeelding is dus een jpg bestand, het watermerk bestand een transparante png met een tekstje.

    Het script heb ik op het net gevonden en werkt na enkele kleine aanpassingen prima buiten het feit dat alles wat transparant moet zijn van mijn png afbeelding dus gewoon wit wordt, dit is echter niet de bedoeling en ik kan niet direct iets vinden hierover qua oplossing.

    Iemand tips?

    Alvast bedankt!
    webdeveloper / gamer
    no votes  

  2. #2
    sarnath's Avatar
    Registered
    07/11/03
    Location
    Bree
    Posts
    6,239
    iTrader
    158 (99%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    niemand?
    webdeveloper / gamer
    no votes  

  3. #3

    Registered
    21/11/03
    Location
    Hasselt
    Posts
    68
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Al geprobeerd te werken met de functie imagecolortransparant?
    no votes  

  4. #4
    sarnath's Avatar
    Registered
    07/11/03
    Location
    Bree
    Posts
    6,239
    iTrader
    158 (99%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Quote Originally Posted by woooter View Post
    This quote is hidden because you are ignoring this member. Show
    Al geprobeerd te werken met de functie imagecolortransparant?
    bedankt, ben al wat verder geraakt, het is nu transparant, maar er is nog een probleem.

    In Firefox krijg ik enkel een hoop tekens, in IE werkt het perfect, zal straks mijn nieuwe code posten, iemand al een idee waaraan zoiets kan liggen? Vind daar geen specifieke info over.
    webdeveloper / gamer
    no votes  

  5. #5

    Registered
    07/06/06
    Location
    Antwerpen
    Posts
    157
    iTrader
    0
    Mentioned
    0 Post(s)
    Dat zijn je http headers die mis staan bij het terugsturen van je response. Zet je deze op image ?
    no votes  

  6. #6
    sarnath's Avatar
    Registered
    07/11/03
    Location
    Bree
    Posts
    6,239
    iTrader
    158 (99%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    ja dat klopte, die waren perongeluk verdwenen, nu werkt het maar zit ik met hetvolgende probleem, als ik de functie oproep in een php pagina werkt het perfect, maar ik heb deze functie dus nodig in een htmlpagina, maar aangezien je de header op image/jpeg zet krijg ik dan weer tekens:

    Zo werkt het dus wel :

    Code:
    <?php 
    
    function watermerk($image) {
        $imagesource =  $image;
        $filetype = substr($imagesource,strlen($imagesource)-4,4);
        $filetype = strtolower($filetype);
        if($filetype == ".gif")  $image = @imagecreatefromgif($imagesource);  
        if($filetype == ".jpg")  $image = @imagecreatefromjpeg($imagesource);  
        if($filetype == ".png")  $image = @imagecreatefrompng($imagesource);  
        if (!$image) die();
        $watermark = @imagecreatefromgif('watermerk.gif');
        $imagewidth = imagesx($image);
        $imageheight = imagesy($image);  
        $watermarkwidth =  imagesx($watermark);
        $watermarkheight =  imagesy($watermark);
        $startwidth = (($imagewidth - $watermarkwidth)/2);
        $startheight = (($imageheight - $watermarkheight)/2);
        imagecopy($image, $watermark,  $imagewidth - $watermarkwidth, $imageheight - $watermarkheight, 0, 0, $watermarkwidth, $watermarkheight);
        header('content-type: image/jpeg');
        imagejpeg($image);
        imagedestroy($image);
        imagedestroy($watermark);
    }
    
    watermerk("testimage.jpg");
    ?>
    
    <html>
    <head>
    </head>
    <body>
    </body>
    </html>
    maar ik zou "watermerk("testimage.jpg");" dus in mijn body tag moeten hebben, maar dan krijg ik dus weer de rare tekens, is dit makkelijk op te lossen? Ik kan nie direct de oplossing vinden.
    webdeveloper / gamer
    no votes  

  7. #7

    Registered
    21/11/03
    Location
    Hasselt
    Posts
    68
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Zet die functie in een nieuwe file. En verwijs als bron van een image naar maakImage.php?image=$image ofzo.

    dus

    <img src="maakImage.php?image=<?php echo $image ?>" />

    dan komt ge er na die functie op te roepen met de get-variabele (in die nieuwe file) er wel denk ik
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in