Archief - GD Library : Watermerk plaatsen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

sarnath

Legacy Member
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!

woooter

Legacy Member
Al geprobeerd te werken met de functie imagecolortransparant?

sarnath

Legacy Member
woooter zei:
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.

Linwe

Legacy Member
Dat zijn je http headers die mis staan bij het terugsturen van je response. Zet je deze op image ?

sarnath

Legacy Member
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.

woooter

Legacy Member
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
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan