imagerotate(), Tekst draaien, plaatje niet
Zojuist met jQuery in mijn andere topic opgelost dat de tekst schuin komt. Als eerste een screen van de pagina:
Op deze pagina kan je zelf een "Naambord" ontwerpen, door middel van verschillende Lettertypes, Groottes en je kunt sinds net ook een tekst draaien zodat je echt je "Eigen" bord kan ontwerpen.
Een stuk van de code:
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
56
57
58
59
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
56
57
58
59
<?php
// Dit is enkel voor regel 1, regel 2 en 3 zouden worden herhaald.
// Y waardes definieren omdat deze afhankelijk zijn van de fontsize
if($_POST['Lettergrootte1'] == '16'){
$Y1 = $_POST['Y1'] - 340;
}
if($_POST['Lettergrootte1'] == '18'){
$Y1 = $_POST['Y1'] - 335;
}
if($_POST['Lettergrootte1'] == '20'){
$Y1 = $_POST['Y1'] - 335;
}
if($_POST['Lettergrootte1'] == '24'){
$Y1 = $_POST['Y1'] - 330;
}
if($_POST['Lettergrootte1'] == '28'){
$Y1 = $_POST['Y1'] - 328;
}
if($_POST['Lettergrootte1'] == '32'){
$Y1 = $_POST['Y1'] - 325;
}
if($_POST['Lettergrootte1'] == '36'){
$Y1 = $_POST['Y1'] - 320;
}
if($_POST['Lettergrootte1'] == '40'){
$Y1 = $_POST['Y1'] - 315;
}
// Ook Regel 2
// Ook Regel 3
// Hierna worden de sessies aangemaakt als de ingevoerde tekst niet leeg is
if(!empty($_POST['Regel1'])){
$_SESSION['Tekst1'] = $_POST['Regel1'];
}
// Zelfde geld voor de andere regels, uitlijningen en lettertypes etc.
// Lettergrootte in CSS verschilt met die van PHP, dus moeten we ze kleiner maken
if(!empty($_POST['Lettergrootte1'])){
$_SESSION['Lettergrootte1'] = $_POST['Lettergrootte1'] - (10 * $_POST['Lettergrootte1'] / 40);
}
// Zelftape gekozen, dan krijg je het plaatje zonder gaatjes erin
if($_SESSION['Bevestigingsmateriaal'] == 'Zelftape'){
$im = imagecreatefrompng('../images/rvs_1_empty_Geen_Gaatjes.png');
}
// Gaatjes gekozen, dan krijg je die ook in je plaatje
if($_SESSION['Bevestigingsmateriaal'] == 'Gaatjes'){
$im = imagecreatefrompng('../images/rvs_1_empty.png');
}
// Verplicht: Tekstkleur
$text_color = imagecolorallocate($im, 0, 0, 0);
// Mensen hebben keuze uit lettertypes, dus laden we wel het juiste lettertype in ;)
$font = '../ttf/'.$_SESSION['Lettertype'].'.ttf';
// Regel 1 ingevuld, dan plakken wij die op de tekst
if(!empty($_SESSION['Tekst1'])){
// Plaatje maken | Lettergrootte | X (Links/Rechts)|Y(Boven/Beneden)|Kleur |Lettertype | Tekst
imagettftext($im, $_SESSION['Lettergrootte1'], 0, $_SESSION['X1'], $_SESSION['Y1'], $text_color, $font, $_SESSION['Tekst1']);
}
// Regel 2 en 3 komen normaal ook
// Opslaan in de map
imagejpeg($im, '../custom_images/'.$Unique_ID_Image.'.jpg');
?>
// Dit is enkel voor regel 1, regel 2 en 3 zouden worden herhaald.
// Y waardes definieren omdat deze afhankelijk zijn van de fontsize
if($_POST['Lettergrootte1'] == '16'){
$Y1 = $_POST['Y1'] - 340;
}
if($_POST['Lettergrootte1'] == '18'){
$Y1 = $_POST['Y1'] - 335;
}
if($_POST['Lettergrootte1'] == '20'){
$Y1 = $_POST['Y1'] - 335;
}
if($_POST['Lettergrootte1'] == '24'){
$Y1 = $_POST['Y1'] - 330;
}
if($_POST['Lettergrootte1'] == '28'){
$Y1 = $_POST['Y1'] - 328;
}
if($_POST['Lettergrootte1'] == '32'){
$Y1 = $_POST['Y1'] - 325;
}
if($_POST['Lettergrootte1'] == '36'){
$Y1 = $_POST['Y1'] - 320;
}
if($_POST['Lettergrootte1'] == '40'){
$Y1 = $_POST['Y1'] - 315;
}
// Ook Regel 2
// Ook Regel 3
// Hierna worden de sessies aangemaakt als de ingevoerde tekst niet leeg is
if(!empty($_POST['Regel1'])){
$_SESSION['Tekst1'] = $_POST['Regel1'];
}
// Zelfde geld voor de andere regels, uitlijningen en lettertypes etc.
// Lettergrootte in CSS verschilt met die van PHP, dus moeten we ze kleiner maken
if(!empty($_POST['Lettergrootte1'])){
$_SESSION['Lettergrootte1'] = $_POST['Lettergrootte1'] - (10 * $_POST['Lettergrootte1'] / 40);
}
// Zelftape gekozen, dan krijg je het plaatje zonder gaatjes erin
if($_SESSION['Bevestigingsmateriaal'] == 'Zelftape'){
$im = imagecreatefrompng('../images/rvs_1_empty_Geen_Gaatjes.png');
}
// Gaatjes gekozen, dan krijg je die ook in je plaatje
if($_SESSION['Bevestigingsmateriaal'] == 'Gaatjes'){
$im = imagecreatefrompng('../images/rvs_1_empty.png');
}
// Verplicht: Tekstkleur
$text_color = imagecolorallocate($im, 0, 0, 0);
// Mensen hebben keuze uit lettertypes, dus laden we wel het juiste lettertype in ;)
$font = '../ttf/'.$_SESSION['Lettertype'].'.ttf';
// Regel 1 ingevuld, dan plakken wij die op de tekst
if(!empty($_SESSION['Tekst1'])){
// Plaatje maken | Lettergrootte | X (Links/Rechts)|Y(Boven/Beneden)|Kleur |Lettertype | Tekst
imagettftext($im, $_SESSION['Lettergrootte1'], 0, $_SESSION['X1'], $_SESSION['Y1'], $text_color, $font, $_SESSION['Tekst1']);
}
// Regel 2 en 3 komen normaal ook
// Opslaan in de map
imagejpeg($im, '../custom_images/'.$Unique_ID_Image.'.jpg');
?>
Als er opmerkingen aan het bovenstaande zijn graag melden.
Wat ik nu wil, is dat de tekst, welke een persoon kan draaien (bijv. 50 Graden), dat deze ook gedraaid komt. Met de waarde $_POST['Draaien1'] (Draaien2 voor regel 2 etc.), kan ik opvragen hoeveel graden de tekst gedraaid hoort te zijn. PHP geeft beschikking tot de functie imagerotate(), echter draait dan het hele plaatje mee. Hoe los ik dit op, dat enkel de tekst draait?
Dat kan je toch doen door voor de tekst apart een image te maken (zonder achtergrondkleur), dat image te draaien en dat dan bovenop het andere te plakken?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$im = imagecreate(150, 30);
$bg = imagecolorallocate($im, 255, 255, 255);
$textcolor = imagecolorallocate($im, 0, 0, 0);
$Grootte = 10;
$X = 10;
$Y = 10;
$Tekst = 'Hallo Wereld!';
imagestring($im, $Grootte, $X, $Y, $Tekst, $textcolor);
imagejpeg($im, '../custom_images/test.jpg');
echo "<img src='../custom_images/test.jpg'>";
?>
$im = imagecreate(150, 30);
$bg = imagecolorallocate($im, 255, 255, 255);
$textcolor = imagecolorallocate($im, 0, 0, 0);
$Grootte = 10;
$X = 10;
$Y = 10;
$Tekst = 'Hallo Wereld!';
imagestring($im, $Grootte, $X, $Y, $Tekst, $textcolor);
imagejpeg($im, '../custom_images/test.jpg');
echo "<img src='../custom_images/test.jpg'>";
?>
Hiermee krijg ik netjes een plaatje, maar hoe kan ik nu dit plaatje op het andere plaatje zetten?
imagecopymerge moet je dat kunnen doen.
Met Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$im = imagecreate(345, 86);
$bg = imagecolorallocate($im, 255, 255, 255);
$textcolor = imagecolorallocate($im, 0, 0, 0);
$Grootte = 10;
$X = 10;
$Y = 10;
$Tekst = 'Hallo Wereld!';
imagestring($im, $Grootte, $X, $Y, $Tekst, $textcolor);
imagejpeg($im, '../custom_images/test.jpg');
$Tekst = imagecreatefromjpeg("../custom_images/test.jpg");
$BG = imagecreatefromjpeg("../custom_images/112613.jpg");
imagecopymerge($Tekst,$BG, 0, 0, 0, 0, 345, 86,100);
header('Content-type: image/jpeg');
imagejpeg($Tekst);
?>
$im = imagecreate(345, 86);
$bg = imagecolorallocate($im, 255, 255, 255);
$textcolor = imagecolorallocate($im, 0, 0, 0);
$Grootte = 10;
$X = 10;
$Y = 10;
$Tekst = 'Hallo Wereld!';
imagestring($im, $Grootte, $X, $Y, $Tekst, $textcolor);
imagejpeg($im, '../custom_images/test.jpg');
$Tekst = imagecreatefromjpeg("../custom_images/test.jpg");
$BG = imagecreatefromjpeg("../custom_images/112613.jpg");
imagecopymerge($Tekst,$BG, 0, 0, 0, 0, 345, 86,100);
header('Content-type: image/jpeg');
imagejpeg($Tekst);
?>
Dit is met imagecopymerge. Probleem: Ik krijg 1 van de 2 plaatjes te zien. Verander ik de 100 in 50, krijg ik beide plaatjes wazig te zien.
Gebruik ik imagecopy, hetzelfde (Parameter met transparency moet er dan uit).
Is het mogelijk om beide plaatjes op 100% te krijgen, dus eerst de achtergrond, dan de tekst?
Hier een voorbeeld wat ik zelf gebruik voor het maken van een banner. Tekst is weliswaar niet gedraaid, maar het idee is hetzelfde. Ik maak hier een text aan met een soort schaduw. Die schaduw wordt gemaakt door text op een transparante achtergrond te zetten, dat plaatje met een blur filter te bewerken en vervolgens dat hele plaatje op het origineel te plakken en daar dan nog eens overheen de normale text te plaatsen.
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
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
<?php
/**
* Add some text to the image. Both text color and shadow color need to be
* given.
* @param resource $img
* @param string $text
* @param resource $shadowColor
* @param resource $textColor
* @param int $size
* @param int $left
* @param int $top
* @param resource $fontPath
*/
private function addText( $img, $text, Color_Class $shadowColor, Color_Class $textColor, $size, $left, $top, $fontPath ){
//create a new layer to place the text shadow on
$imgLayer = imagecreate( self::BANNER_WIDTH, self::BANNER_HEIGHT );
//create color and make background transparent
$background = imagecolorallocate( $imgLayer, 0, 0, 0 );
imagefill( $imgLayer, 0, 0, $background );
imagecolortransparent( $imgLayer, $background );
//create the shadow text if the text color is not black
if ( !$this->textColorIsBlack( $textColor ) ){
$shadowClr = imagecolorallocate( $imgLayer, $shadowColor->getR(), $shadowColor->getG(), $shadowColor->getB() );
imagettftext( $imgLayer, $size, 0, $left, $top, $shadowClr, $fontPath, $text );
imagefilter( $imgLayer, IMG_FILTER_GAUSSIAN_BLUR );
imagecopymerge( $img, $imgLayer, 0, 0, 0, 0, self::BANNER_WIDTH, self::BANNER_HEIGHT, 100 );
}
//add the final text
$txtClr = imagecolorallocate( $img, $textColor->getR(), $textColor->getG(), $textColor->getB() );
imagettftext( $img, $size, 0, $left, $top, $txtClr, $fontPath, $text );
}
?>
/**
* Add some text to the image. Both text color and shadow color need to be
* given.
* @param resource $img
* @param string $text
* @param resource $shadowColor
* @param resource $textColor
* @param int $size
* @param int $left
* @param int $top
* @param resource $fontPath
*/
private function addText( $img, $text, Color_Class $shadowColor, Color_Class $textColor, $size, $left, $top, $fontPath ){
//create a new layer to place the text shadow on
$imgLayer = imagecreate( self::BANNER_WIDTH, self::BANNER_HEIGHT );
//create color and make background transparent
$background = imagecolorallocate( $imgLayer, 0, 0, 0 );
imagefill( $imgLayer, 0, 0, $background );
imagecolortransparent( $imgLayer, $background );
//create the shadow text if the text color is not black
if ( !$this->textColorIsBlack( $textColor ) ){
$shadowClr = imagecolorallocate( $imgLayer, $shadowColor->getR(), $shadowColor->getG(), $shadowColor->getB() );
imagettftext( $imgLayer, $size, 0, $left, $top, $shadowClr, $fontPath, $text );
imagefilter( $imgLayer, IMG_FILTER_GAUSSIAN_BLUR );
imagecopymerge( $img, $imgLayer, 0, 0, 0, 0, self::BANNER_WIDTH, self::BANNER_HEIGHT, 100 );
}
//add the final text
$txtClr = imagecolorallocate( $img, $textColor->getR(), $textColor->getG(), $textColor->getB() );
imagettftext( $img, $size, 0, $left, $top, $txtClr, $fontPath, $text );
}
?>
Gewijzigd op 15/07/2014 23:03:15 door Erwin H
Ik heb nu dit:
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
<?php
function imagecopymerge_alpha($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct)
{
if (!isset($pct)) {
return false;
}
$pct/= 100;
// Get image width and height
$w = imagesx($src_im);
$h = imagesy($src_im);
// Turn alpha blending off
imagealphablending($src_im, false);
// Find the most opaque pixel in the image (the one with the smallest alpha value)
$minalpha = 127;
for ($x = 0; $x < $w; $x++)
for ($y = 0; $y < $h; $y++) {
$alpha = (imagecolorat($src_im, $x, $y) >> 24) & 0xFF;
if ($alpha < $minalpha) {
$minalpha = $alpha;
}
}
// loop through image pixels and modify alpha for each
for ($x = 0; $x < $w; $x++) {
for ($y = 0; $y < $h; $y++) {
// get current alpha value (represents the TANSPARENCY!)
$colorxy = imagecolorat($src_im, $x, $y);
$alpha = ($colorxy >> 24) & 0xFF;
// calculate new alpha
if ($minalpha !== 127) {
$alpha = 127 + 127 * $pct * ($alpha - 127) / (127 - $minalpha);
}
else {
$alpha+= 127 * $pct;
}
// get the color index with new alpha
$alphacolorxy = imagecolorallocatealpha($src_im, ($colorxy >> 16) & 0xFF, ($colorxy >> 8) & 0xFF, $colorxy & 0xFF, $alpha);
// set pixel with the new color + opacity
if (!imagesetpixel($src_im, $x, $y, $alphacolorxy)) {
return false;
}
}
}
// The image copy
imagecopy($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h);
}
$img=imagecreatetruecolor(150,20);
imagealphablending($img,false);
$col=imagecolorallocatealpha($img,255,255,255,127);
imagefilledrectangle($img,0,0,180,20,$col);
imagealphablending($img,true);
$font='../ttf/0001.ttf';
$color = imagecolorallocate($img, 0, 0, 0);
imagettftext($img,11,0,5,14,$color,$font,'Text goes here');
header('Content-Type: image/jpeg');
imagealphablending($img,false);
imagesavealpha($img,true);
imagejpeg($img, '../custom_images/test.jpg');
// Create image instances
$dest = imagecreatefromjpeg('../custom_images/121536.jpg');
$src = imagecreatefromjpeg('../custom_images/test.jpg');
$width = imagesx($src);
$height = imagesy($src);
imageantialias($src, true);
$color = imagecolorallocatealpha($src, 0, 0, 0, 127);
$rotated = imagerotate($src, 0, $color);
imagesavealpha($rotated, true);
// $trans_colour = imagecolorallocatealpha($rotated, 0, 0, 0, 127);
// imagefill($rotated, 0, 0, $trans_colour);
imagepng($rotated, 'shahid.png');
$new_img = imagecreatefrompng('shahid.png');
$width = imagesx($new_img);
$height = imagesy($new_img);
// imagecopymerge($dest, $new_img, 50, 50, 0, 0, $width+60, $height+60, 100);
imagecopymerge_alpha($dest, $new_img, 0, 20, 0, 0, $width, $height, 100);
// Output and free from memory
header('Content-Type: image/png');
imagepng($dest);
imagedestroy($dest);
imagedestroy($src);
?>
function imagecopymerge_alpha($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct)
{
if (!isset($pct)) {
return false;
}
$pct/= 100;
// Get image width and height
$w = imagesx($src_im);
$h = imagesy($src_im);
// Turn alpha blending off
imagealphablending($src_im, false);
// Find the most opaque pixel in the image (the one with the smallest alpha value)
$minalpha = 127;
for ($x = 0; $x < $w; $x++)
for ($y = 0; $y < $h; $y++) {
$alpha = (imagecolorat($src_im, $x, $y) >> 24) & 0xFF;
if ($alpha < $minalpha) {
$minalpha = $alpha;
}
}
// loop through image pixels and modify alpha for each
for ($x = 0; $x < $w; $x++) {
for ($y = 0; $y < $h; $y++) {
// get current alpha value (represents the TANSPARENCY!)
$colorxy = imagecolorat($src_im, $x, $y);
$alpha = ($colorxy >> 24) & 0xFF;
// calculate new alpha
if ($minalpha !== 127) {
$alpha = 127 + 127 * $pct * ($alpha - 127) / (127 - $minalpha);
}
else {
$alpha+= 127 * $pct;
}
// get the color index with new alpha
$alphacolorxy = imagecolorallocatealpha($src_im, ($colorxy >> 16) & 0xFF, ($colorxy >> 8) & 0xFF, $colorxy & 0xFF, $alpha);
// set pixel with the new color + opacity
if (!imagesetpixel($src_im, $x, $y, $alphacolorxy)) {
return false;
}
}
}
// The image copy
imagecopy($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h);
}
$img=imagecreatetruecolor(150,20);
imagealphablending($img,false);
$col=imagecolorallocatealpha($img,255,255,255,127);
imagefilledrectangle($img,0,0,180,20,$col);
imagealphablending($img,true);
$font='../ttf/0001.ttf';
$color = imagecolorallocate($img, 0, 0, 0);
imagettftext($img,11,0,5,14,$color,$font,'Text goes here');
header('Content-Type: image/jpeg');
imagealphablending($img,false);
imagesavealpha($img,true);
imagejpeg($img, '../custom_images/test.jpg');
// Create image instances
$dest = imagecreatefromjpeg('../custom_images/121536.jpg');
$src = imagecreatefromjpeg('../custom_images/test.jpg');
$width = imagesx($src);
$height = imagesy($src);
imageantialias($src, true);
$color = imagecolorallocatealpha($src, 0, 0, 0, 127);
$rotated = imagerotate($src, 0, $color);
imagesavealpha($rotated, true);
// $trans_colour = imagecolorallocatealpha($rotated, 0, 0, 0, 127);
// imagefill($rotated, 0, 0, $trans_colour);
imagepng($rotated, 'shahid.png');
$new_img = imagecreatefrompng('shahid.png');
$width = imagesx($new_img);
$height = imagesy($new_img);
// imagecopymerge($dest, $new_img, 50, 50, 0, 0, $width+60, $height+60, 100);
imagecopymerge_alpha($dest, $new_img, 0, 20, 0, 0, $width, $height, 100);
// Output and free from memory
header('Content-Type: image/png');
imagepng($dest);
imagedestroy($dest);
imagedestroy($src);
?>
2 dingen:
1) Tekst achtergrond is wit, niet transparant
2) Ik wil de Width en Height exact hebben, dit verschilt echter per tekst (Ene tekst is langer dan de andere), anders kan ik niet draaien.
2) los het eerst op met een test. Die width en height maakt in eerste instantie niet zoveel uit, want het gaat om de tekst die je eroverheen plakt. Tenzij de tekst precies passend moet zijn van links naar rechts en boven tot onder, maakt de width en height van de tekst dus niet zoveel uit.
2) dit is wel de bedoeling omdat de tekst moet draaien, waardoor de tekst anders lager komt. Dan klopt het voorbeeld nietmeer.
Tevens is alles in een test bestand.
2) Nee, in de functie imagecopymerge kan je precies aangeven waar op het origineel het gecopieerde plaatje moet komen. Dat kan dus veel groter of kleiner zijn.
Toe te voegen, werkt niet.
2) Stel, ik heb het volgende:
(Plaatje)
En ik draai dit:
Dan gaat dit deel dus een stuk lager op het bord staan dan hoort, of denk ik nu verkeerd?
Over dat tweede stuk kan ik zo ook niets zeggen. Dat ligt er helemaal aan hoe je het doet en wat je wilt. Dit is te algemeen.
Zie mijn eerste screentje betreft "Hoe ik het wil", met jQuery kan je de tekst draaien en dat wil ik dan terugzien in het voorbeeld, het plaatje wat er dan gemaakt wordt met de tekst. Dus stel, ik draai de tekst 10 graden, dan moet ik dat ook op het plaatje zien welke door PHP is gemaakt.
Sidenote: alvast sorry als ik het verkeerd begrepen heb.
Als ik vanmiddag tijd (en zin) heb zal ik even kijken of ik een simpel werkend voorbeeld in elkaar kan zetten.
Victor G op 17/07/2014 12:34:52:
Ik heb niet alles gelezen, maar kan je met je voorbeeld ook niet gewoon jQuery gebruiken aangezien het al werkt? Nu ga je twee dingen maken die in principe het zelfde doen. Als je nou gewoon die waarde van de post gebruikt om de angle in te stellen ben je toch klaar?
Sidenote: alvast sorry als ik het verkeerd begrepen heb.
Sidenote: alvast sorry als ik het verkeerd begrepen heb.
jQuery kan geen image maken in PHP, PHP is server-side, jQuery client-side.
Alvast bedankt Erwin.
Dat snap ik, maar waarom wil je dit met PHP doen? Je kan dit toch ook met jQueury doen? Je wil een voorbeeld maken, maar je hebt al een live voorbeeld. Gebruik die waardes dan in je jQuery.
Ik heb een live voorbeeld welke ik op de volgende pagina en in een email wil laten zien, dit gaat niet met jQuery neem ik aan omdat het plaatje op de server moet staan. Hoe zou je het met jQuery doen?
En als ik zin & tijd heb.
Ook alvast bedankt, gaat veel tijd zitten in één zo'n functie zeg...
Die GD library is erg krachtig.... maar niet erg makkelijk. Gaat dus inderdaad wel even wat tijd inzitten, maar uiteindelijk krijgen we het vast aan de praat.