watermerk op een afbeelding in img tag
Ik ben bezig om een script te schrijven om een watermerk png-afbeelding op een jpg afbeelding te zetten in een img tag.
Maar ik krijg de volgende output:
Code (php)
1
JFIF``>CREATOR: gd-jpeg v1.0 (using IJG JPEG v90), default quality C $.' ",#(7),01444'9=82<.342C 2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br
Ik begrijp niet waarom ik dit krijg.
Krijg ook geen errors.
De code is:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$stamp = imagecreatefrompng('stampimg.png');
$im = imagecreatefromjpeg('flower.jpg');
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);
$imgx = imagesx($im);
$imgy = imagesy($im);
$centerX=round($imgx/2);
$centerY=round($imgy/2);
imagecopy($im, $stamp, $centerX, $centerY, 0, 0, imagesx($stamp), imagesy($stamp));
echo '<img src=" $im " alt=""> ';
imagejpeg($im);
imagedestroy($im);
?>
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$stamp = imagecreatefrompng('stampimg.png');
$im = imagecreatefromjpeg('flower.jpg');
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);
$imgx = imagesx($im);
$imgy = imagesy($im);
$centerX=round($imgx/2);
$centerY=round($imgy/2);
imagecopy($im, $stamp, $centerX, $centerY, 0, 0, imagesx($stamp), imagesy($stamp));
echo '<img src=" $im " alt=""> ';
imagejpeg($im);
imagedestroy($im);
?>
<img src="" alt="">
Hoe krijg ik de afbeelding te zien met het watermerk in de img tag?
alvast bedankt
Je mist sowieso de header() die aangeeft dat je output een afbeelding is:
En verder hoor je jouw afbeelding apart aan te roepen vanuit een ander bestand. Je haalt nu een result op waar je niks mee kan.
Je PHP-script regelt enkel het genereren van de afbeelding, NIET het aanroepen ervan.
Gewijzigd op 18/10/2019 13:51:56 door - Ariën -
Bedankt voor de info, maar hoe stuur ik de bovenstaande code door naar een ander bestand?
Gewijzigd op 18/10/2019 14:30:22 door - Ariën -
In image.php staat de code van mijn eerste bericht maar met onder de
In index.php staat :
Ik zie nu alleen de alt tekst: bekijk image, als ik index.php open in de browser. De 2 bestanden en de twee afbeeldingen zitten allemaal in de root.
Maar ik zie geen afbeelding, hoe kan dit?
Ik vermoed dat je dan een foutmelding ziet.
CREATOR: gd-jpeg v1.0 (using IJG JPEG v90), default quality ??C $.' ",#(7),01444'9=82<.342??C 2!!22222222222222222222222222222222222222222222222222??i C"?? ???}!1AQa"q2???#B??R??$3br?
dan krijg ik dit te zien: Misschien is het handig om defensief te programmeren, zoals example #1 van deze site:
https://www.php.net/manual/en/function.imagecreatefrompng.php
Dus bouw if-else-structuren in, en kijk welke voorwaarden worden doorlopen.
PNG header <---> JPEG afbeelding, dat gaat 'em sowieso niet worden.
doorJe schrijft immers met imagejpeg($im); een JPEG weg ...
Wat thomas bedoelt: vervangGewijzigd op 18/10/2019 16:18:48 door Rob Doemaarwat
als ik dit doe dan krijg ik een zwart scherm te zien...
Je zult waarschijnlijk iets moeten doen met imagecopymerge() in plaats van simpelweg imagecopy() om een semi-doorzichtig watermerk te krijgen zoals in -letterlijk- het eerste Google resultaat wordt gedemonstreerd.
Je kunt niet simpelweg het ene plaatje kopiëren naar het andere plaatje als je wilt dat de "stampimg" doorzichtig is.
Robert Jansen op 18/10/2019 15:03:33:
Plaats je header eens helemaal bovenaan. En zorg voor geen enkele output (echo, print, return o.i.d.)
Toevoeging:
Getest en dit werkt hier prima
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
header('Content-Type: image/jpeg');
$stamp = imagecreatefrompng('https://www.bolster.nl/media/images/vlinder_klein.png');
$im = imagecreatefromjpeg('https://www.bolster.nl/media/images/5450_dbweb.jpg');
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);
$imgx = imagesx($im);
$imgy = imagesy($im);
$centerX=round($imgx/2);
$centerY=round($imgy/2);
imagecopy($im, $stamp, $centerX, $centerY, 0, 0, imagesx($stamp), imagesy($stamp));
imagejpeg($im);
imagedestroy($im);
?>
header('Content-Type: image/jpeg');
$stamp = imagecreatefrompng('https://www.bolster.nl/media/images/vlinder_klein.png');
$im = imagecreatefromjpeg('https://www.bolster.nl/media/images/5450_dbweb.jpg');
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);
$imgx = imagesx($im);
$imgy = imagesy($im);
$centerX=round($imgx/2);
$centerY=round($imgy/2);
imagecopy($im, $stamp, $centerX, $centerY, 0, 0, imagesx($stamp), imagesy($stamp));
imagejpeg($im);
imagedestroy($im);
?>
Gewijzigd op 21/10/2019 17:27:38 door Michael -