Van externe aanroep naar functie die vaker aangeroepen kan worden
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
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
<?php
// Print two names on the picture, which accepted by query string parameters.
// <img src="createImage.php?n1=winter&n2=seizoen&n2=rood" />
//tekst 1, boven
$n1 = $_GET['n1'];
//tekst 2, onder
$n2 = $_GET['n2'];
//achtergrondbeeld
$n3 = $_GET['n3'];
Header ("Content-type: image/jpeg");
switch ($n3):
case "rood":
$image = imageCreateFromJPEG("images/rood.jpg");
break;
case "blauw":
$image = imageCreateFromJPEG("images/blauw.jpg");
break;
case "groen":
$image = imageCreateFromJPEG("images/groen.jpg");
break;
default:
$image = imageCreateFromJPEG("images/basis.jpg");
endswitch;
$color = ImageColorAllocate($image, 255, 255, 255);
$color1 = ImageColorAllocate($image, 169, 169, 169);
// Wrtie text to horizontal alignment for the names.
imagettftext($image, 70, 0, 150, 185, $color, 'font/HermesRegular.ttf', $n1);
imagettftext($image, 40, 0, 500, 240, $color1, 'font/HermesRegular.ttf', $n2);
// nu opslaan
// in dite geval als file anders naam NULL geven
imagejpeg($image, "images/'.$n1.'.jpg", 80);
// vernietig file in geheugen
ImageDestroy($image);
?>
// Print two names on the picture, which accepted by query string parameters.
// <img src="createImage.php?n1=winter&n2=seizoen&n2=rood" />
//tekst 1, boven
$n1 = $_GET['n1'];
//tekst 2, onder
$n2 = $_GET['n2'];
//achtergrondbeeld
$n3 = $_GET['n3'];
Header ("Content-type: image/jpeg");
switch ($n3):
case "rood":
$image = imageCreateFromJPEG("images/rood.jpg");
break;
case "blauw":
$image = imageCreateFromJPEG("images/blauw.jpg");
break;
case "groen":
$image = imageCreateFromJPEG("images/groen.jpg");
break;
default:
$image = imageCreateFromJPEG("images/basis.jpg");
endswitch;
$color = ImageColorAllocate($image, 255, 255, 255);
$color1 = ImageColorAllocate($image, 169, 169, 169);
// Wrtie text to horizontal alignment for the names.
imagettftext($image, 70, 0, 150, 185, $color, 'font/HermesRegular.ttf', $n1);
imagettftext($image, 40, 0, 500, 240, $color1, 'font/HermesRegular.ttf', $n2);
// nu opslaan
// in dite geval als file anders naam NULL geven
imagejpeg($image, "images/'.$n1.'.jpg", 80);
// vernietig file in geheugen
ImageDestroy($image);
?>
Nu wil ik er dus graag een functie van maken. Wie kan mij helpen?
Gewijzigd op 28/08/2017 17:52:35 door Jan te Pas
Ik loop vast omdat de functie terug moet gaan, een return. En dat eindigt volgens de voorbeelden met een vergelijking. Maar ik wil niets vergelijken. Dat snap ik even niet.
Toevoeging op 28/08/2017 17:39:17:
Ik had dit ervan gemaakt, maar weet niet of dit goed is, op deze manier. Graag een kennersblik.
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
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
function maakafbeelding($n1, $n2, $n3) {
// Header ("Content-type: image/jpeg");
switch ($n3):
case "rood":
$image = imageCreateFromJPEG("images/rood.jpg");
break;
case "blauw":
$image = imageCreateFromJPEG("images/blauw.jpg");
break;
case "groen":
$image = imageCreateFromJPEG("images/groen.jpg");
break;
default:
$image = imageCreateFromJPEG("images/basis.jpg");
endswitch;
$color = ImageColorAllocate($image, 255, 255, 255);
$color1 = ImageColorAllocate($image, 169, 169, 169);
// Wrtie text to horizontal alignment for the names.
imagettftext($image, 70, 0, 150, 185, $color, 'font/HermesRegular.ttf', $n1);
imagettftext($image, 40, 0, 500, 240, $color1, 'font/HermesRegular.ttf', $n2);
// nu opslaan
imagejpeg($image, 'images/'.$n1.'.jpg', 80);
// vernietig file in geheugen
ImageDestroy($image);
return;
}
// Header ("Content-type: image/jpeg");
switch ($n3):
case "rood":
$image = imageCreateFromJPEG("images/rood.jpg");
break;
case "blauw":
$image = imageCreateFromJPEG("images/blauw.jpg");
break;
case "groen":
$image = imageCreateFromJPEG("images/groen.jpg");
break;
default:
$image = imageCreateFromJPEG("images/basis.jpg");
endswitch;
$color = ImageColorAllocate($image, 255, 255, 255);
$color1 = ImageColorAllocate($image, 169, 169, 169);
// Wrtie text to horizontal alignment for the names.
imagettftext($image, 70, 0, 150, 185, $color, 'font/HermesRegular.ttf', $n1);
imagettftext($image, 40, 0, 500, 240, $color1, 'font/HermesRegular.ttf', $n2);
// nu opslaan
imagejpeg($image, 'images/'.$n1.'.jpg', 80);
// vernietig file in geheugen
ImageDestroy($image);
return;
}
Gewijzigd op 28/08/2017 20:58:20 door Jan te Pas
Ziet er op sich goed uit. Onthoud wel dat je dit in een apart bestand moet uitvoeren die de afbeelding toont. Uiteindelijk roep je die dus in je img-tag van je HTML aan.
Ik wilde de afbeelding maken als een formulier ingevuld is. Dan wordt de afbeelding weggeschreven, en vervolgens getoond. De oude php toonde direct de afbeelding. Maar nu stopt alles na de functie. Er wordt wel een bestand weggeschreven, maar de code gast niet verder. Tevens zie ik een klein blokje bovenin het scherm. Moet hier geen return in de functie komen?
Comment je header, en kijk eens of je foutmeldingen krijgt.
De header hoort er sowieso niet. Je bent niet aan het weergeven, maar aan het opslaan.
Dank dank. Code pas ik hierboven aan. Wellicht willen anderen dit ook gebruiken.