Thread: GD Library : Watermerk plaatsen
-
25-11-2008, 23:31 #1Member
- 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 :
De hoofdafbeelding is dus een jpg bestand, het watermerk bestand een transparante png met een tekstje.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); ?>
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 / gamerno votes
-
-
27-11-2008, 10:08 #2Member
- Registered
- 07/11/03
- Location
- Bree
- Posts
- 6,239
- iTrader
- 158 (99%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
niemand?
webdeveloper / gamerno votes
-
28-11-2008, 14:27 #3
Al geprobeerd te werken met de functie imagecolortransparant?
no votes
-
02-12-2008, 09:47 #4Member
- Registered
- 07/11/03
- Location
- Bree
- Posts
- 6,239
- iTrader
- 158 (99%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
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 / gamerno votes
-
02-12-2008, 12:58 #5Member
- 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
-
02-12-2008, 21:26 #6Member
- 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 :
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.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>webdeveloper / gamerno votes
-
05-12-2008, 03:45 #7
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 ikno votes

