watermerk op een afbeelding in img tag
Hallo,
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:
Ik begrijp niet waarom ik dit krijg.
Krijg ook geen errors.
De code is:
<img src="" alt="">
Hoe krijg ik de afbeelding te zien met het watermerk in de img tag?
alvast bedankt
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<.342������C 2!!22222222222222222222222222222222222222222222222222���������"������ ���������}!1AQa"q2���������#B������R������$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 slaat nu een aantal planken mis:
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.
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?
Gewoon door je losse PHP-script in je website op te roepen als image:
Gewijzigd op 18/10/2019 14:30:22 door - Ariën -
ik heb nu twee bestanden: image.php en index.php.
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?
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?
Haal de header eens weg, en open image.php in de browser?
Ik vermoed dat je dan een foutmelding ziet.
Ik vermoed dat je dan een foutmelding ziet.
dan krijg ik dit te zien: 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 heb ik het vermoeden dat er niks met de afbeelding is.
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.
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.
Wat thomas bedoelt: vervangdoorJe schrijft immers met imagejpeg($im); een JPEG weg ...
Gewijzigd op 18/10/2019 16:18:48 door Rob Doemaarwat
als ik dit doe dan krijg ik een zwart scherm te zien...
Haal de header dan weg en roep image.php rechtstreeks aan en kijk wat voor foutmelding dit oplevert.
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.
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 -




