probleem met afbeelding maken in PHP
Ik zit met een probleem bij het maken van een afbeelding.
De achtergrond wil ik transparant hebben, maar op één of ander manier, doet die het niet netjes.
Script :
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
if($_POST['tekst'] !=''){
$text = $_POST['tekst'];
// afbeelding grootte
$im = imagecreatetruecolor(200, 40);
// tekst kleur
if ($_POST['kleur'] =='black'){
$black = imagecolorallocate($im, 0, 0, 0);
}
if ($_POST['kleur'] =='gold'){
$black = imagecolorallocate($im, 225, 187, 52);
}
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
imagefilledrectangle($im, 0, 0, 200, 40, $grey);
imagecolortransparent($im, $grey);
// lettertype
$font = 'trajan.otf';
// tekst toevoegen
imagettftext($im, 20, 0, 20, 28, $black, $font, $text);
//filenaam aanmaken
$bestandsnaam = rand(1000,9999);
//afbeelding maken
imagepng($im, 'tekstimages/'.$bestandsnaam.'.png');
imagedestroy($im);
echo "<img src=tekstimages/".$bestandsnaam.".png style='border:0px solid black;'??/>";
echo "<br>Je hebt gekozen voor tekstkleur : ".$_POST['kleur']."";
}else{
echo "Je hebt geen tekst ingevuld.";
}
}
?>
<form action="tekstgenerator.php" method="POST">
<p>Tekst kleur:<br>
<select name="kleur">
<option value="black">Black</option>
<option value="gold">Gold</option>
</select>
</p>
<p><input type="text" name="tekst"/><input type="submit" value="Genereer"/></p>
</form>
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
if($_POST['tekst'] !=''){
$text = $_POST['tekst'];
// afbeelding grootte
$im = imagecreatetruecolor(200, 40);
// tekst kleur
if ($_POST['kleur'] =='black'){
$black = imagecolorallocate($im, 0, 0, 0);
}
if ($_POST['kleur'] =='gold'){
$black = imagecolorallocate($im, 225, 187, 52);
}
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
imagefilledrectangle($im, 0, 0, 200, 40, $grey);
imagecolortransparent($im, $grey);
// lettertype
$font = 'trajan.otf';
// tekst toevoegen
imagettftext($im, 20, 0, 20, 28, $black, $font, $text);
//filenaam aanmaken
$bestandsnaam = rand(1000,9999);
//afbeelding maken
imagepng($im, 'tekstimages/'.$bestandsnaam.'.png');
imagedestroy($im);
echo "<img src=tekstimages/".$bestandsnaam.".png style='border:0px solid black;'??/>";
echo "<br>Je hebt gekozen voor tekstkleur : ".$_POST['kleur']."";
}else{
echo "Je hebt geen tekst ingevuld.";
}
}
?>
<form action="tekstgenerator.php" method="POST">
<p>Tekst kleur:<br>
<select name="kleur">
<option value="black">Black</option>
<option value="gold">Gold</option>
</select>
</p>
<p><input type="text" name="tekst"/><input type="submit" value="Genereer"/></p>
</form>
Op de pagina zelf als voorbeeld, ziet het er netjes uit (behalve bij tekstkleur zwart), maar zodra je het opslaat, of bekijkt in een nieuw tabblad, ziet het er opeens heel pixelig(lelijk) uit.
Iemand een idee, waar aan het ligt?
http://www.php.net/manual/en/function.imagepng.php staat dat je ook een waarde mee kunt geven voor de kwaliteit. Dat al geprobeerd?
Op Bedankt, ik zal er vanavond naar kijken. ;)