login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Probleem met GD Library (Opgelost)

Offline Jero3n - 08/04/2007 14:02
Avatar van Jero3nPHP interesse ik heb deze code:

  1. <?php
  2. function newimg($id, $width, $height)
  3. {
  4. header("content-type: image/png");
  5. $image[$id] = ImageCreate($width, $height);
  6. $achtergrond = ImageColorAllocate($image[$id], 255, 255, 255);
  7. $black = ImageColorAllocate($image[$id], 0, 0, 0);
  8.  
  9. ImageLine($image[$id], 0, 0, $width, 0, $black);
  10. ImageLine($image[$id], 0, $height-1, $width, $height-1, $black);
  11. ImageLine($image[$id], 0, 0, 0, $height-1, $black);
  12. ImageLine($image[$id], $width-1, 0, $width-1, $height-1, $black);
  13. }
  14.  
  15. function gaussian_blur($id, $times) {
  16.  
  17. $i="0";
  18.  
  19. While ($i<=$times) {
  20. imagefilter($image[0], IMG_FILTER_GAUSSIAN_BLUR);
  21. $i++;
  22. }
  23.  
  24. function showimg($id) {
  25. imagePNG($image[$id]);
  26. }
  27.  
  28. newimg(0, 500, 500);
  29. gaussian_blur(0, 5);
  30. echo showimg(0);
  31. ?>


als ik dit uitvoer, krijg ik dit:
Citaat:
Parse error: syntax error, unexpected $end in C:Xamppxampphtdocsindex.php on line 31


regel 31 is de regel met ?>
maar wat is daar fout aan?
ik hoop dat iemand me kan helpen 

26 antwoorden

Gesponsorde links
Offline Dark_Paul - 08/04/2007 14:20 (laatste wijziging 08/04/2007 14:22)
Avatar van Dark_Paul PHP ver gevorderde Goed kijken he...

  1. <?php
  2. function newimg($id, $width, $height)
  3. {
  4. header("content-type: image/png");
  5. $image[$id] = ImageCreate($width, $height);
  6. $achtergrond = ImageColorAllocate($image[$id], 255, 255, 255);
  7. $black = ImageColorAllocate($image[$id], 0, 0, 0);
  8.  
  9. ImageLine($image[$id], 0, 0, $width, 0, $black);
  10. ImageLine($image[$id], 0, $height-1, $width, $height-1, $black);
  11. ImageLine($image[$id], 0, 0, 0, $height-1, $black);
  12. ImageLine($image[$id], $width-1, 0, $width-1, $height-1, $black);
  13. }
  14.  
  15. function gaussian_blur($id, $times) {
  16.  
  17. $i="0";
  18.  
  19. While ($i<=$times) {
  20. imagefilter($image[0], IMG_FILTER_GAUSSIAN_BLUR);
  21. $i++;
  22. }
  23.  
  24. function showimg($id) {
  25. imagePNG($image[$id]);
  26. }
  27.  
  28. newimg(0, 500, 500);
  29. gaussian_blur(0, 5);
  30. echo showimg(0);
  31. ?>

Daarom is het dus handig om in te springen dmv. tabs.

Edit:
$i="0"; hoeft niet met quotes, omdat $i een int is, geen string. Je kan dus gewoon '$i=0;' doen.
Offline DenMette - 08/04/2007 14:24 (laatste wijziging 08/04/2007 14:26)
Avatar van DenMette PHP gevorderde voor je wat tijd te besparen je bent ergens een } vergeten op lijn 23

en zoals Dark_Paul zegt werk met TABS of inspringing je kan dat ook doen met een spatie
Offline Jero3n - 08/04/2007 14:28
Avatar van Jero3n PHP interesse dom van me, ik had de funtie gaussian_blur niet gesloten...
maar nu heb ik het naar dit veranderd:

  1. <?php
  2. function newimg($id, $width, $height)
  3. {
  4. header("content-type: image/png");
  5. $image[$id] = ImageCreate($width, $height);
  6. $achtergrond = ImageColorAllocate($image[$id], 255, 255, 255);
  7. $black = ImageColorAllocate($image[$id], 0, 0, 0);
  8.  
  9. ImageLine($image[$id], 0, 0, $width, 0, $black);
  10. ImageLine($image[$id], 0, $height-1, $width, $height-1, $black);
  11. ImageLine($image[$id], 0, 0, 0, $height-1, $black);
  12. ImageLine($image[$id], $width-1, 0, $width-1, $height-1, $black);
  13. }
  14.  
  15. function gaussian_blur($id, $times) {
  16.  
  17. $i=0;
  18.  
  19. While ($i<=$times) {
  20. imagefilter($image[$id], IMG_FILTER_GAUSSIAN_BLUR);
  21. $i++;
  22. }
  23. }
  24.  
  25. function showimg($id) {
  26. imagePNG($image[$id]);
  27. }
  28.  
  29. newimg(0, 500, 500);
  30. gaussian_blur(0, 5);
  31. echo showimg(0);
  32. ?>


en dan geeft ie dit:

Citaat:
<br />
<b>Warning</b>: imagefilter() expects parameter 1 to be resource, null given in <b>C:Xamppxampphtdocsindex.php</b> on line <b>20</b><br />
<br />
<b>Warning</b>: imagefilter() expects parameter 1 to be resource, null given in <b>C:Xamppxampphtdocsindex.php</b> on line <b>20</b><br />
<br />
<b>Warning</b>: imagefilter() expects parameter 1 to be resource, null given in <b>C:Xamppxampphtdocsindex.php</b> on line <b>20</b><br />
<br />
<b>Warning</b>: imagefilter() expects parameter 1 to be resource, null given in <b>C:Xamppxampphtdocsindex.php</b> on line <b>20</b><br />
<br />
<b>Warning</b>: imagefilter() expects parameter 1 to be resource, null given in <b>C:Xamppxampphtdocsindex.php</b> on line <b>20</b><br />
<br />
<b>Warning</b>: imagefilter() expects parameter 1 to be resource, null given in <b>C:Xamppxampphtdocsindex.php</b> on line <b>20</b><br />
<br />
<b>Warning</b>: imagepng(): supplied argument is not a valid Image resource in <b>C:Xamppxampphtdocsindex.php</b> on line <b>26</b><br />


:s
Offline Rens - 08/04/2007 14:29
Avatar van Rens Gouden medaille

Crew algemeen
Hij herkent $image[$id] niet als resource zoals je kunt lezen...
Oftewel de var. bevat geen resource naar een plaatje.
Offline Jero3n - 08/04/2007 14:33 (laatste wijziging 08/04/2007 14:37)
Avatar van Jero3n PHP interesse Dat kan niet, want eerst had ik wat anders, ook met $image[$id] en toen werkte het wel...

EDIT:
Bijvoorbeeld dit werkt gewoon:

  1. <?php
  2. function newimg($id, $width, $height)
  3. {
  4. header("content-type: image/png");
  5. $image[$id] = ImageCreate($width, $height);
  6. $achtergrond = ImageColorAllocate($image[$id], 255, 255, 255);
  7. $black = ImageColorAllocate($image[$id], 0, 0, 0);
  8.  
  9. ImageLine($image[$id], 0, 0, $width, 0, $black);
  10. ImageLine($image[$id], 0, $height-1, $width, $height-1, $black);
  11. ImageLine($image[$id], 0, 0, 0, $height-1, $black);
  12. ImageLine($image[$id], $width-1, 0, $width-1, $height-1, $black);
  13.  
  14. imagePNG($image[$id]);
  15. imagedestroy($image[$id]);
  16. }
  17.  
  18. echo newimg(0, 500, 500);
  19. ?>
Offline Dark_Paul - 08/04/2007 14:42
Avatar van Dark_Paul PHP ver gevorderde Als je $image[$id] in de andere functies ook wilt gebruiken, moet je er een global van maken.
Anders kan je 'm alleen in de functie newimg() gebruiken, daar maak je de var ook aan.
Offline Jero3n - 08/04/2007 14:43
Avatar van Jero3n PHP interesse Sorry, ik werk nog niet zo lang met php, dus wat is een global??
:$
Offline mesynthetix - 08/04/2007 14:50 (laatste wijziging 08/04/2007 14:52)
Avatar van mesynthetix Nieuw lid Gewoon de functie in dit veranderen:
  1. <?php // voor de kleurtjes
  2. function gaussian_blur($id, $times) {
  3. // zorgt ervoor dat $image ook bruikbaar wordt in deze functie
  4. global $image;
  5.  
  6. $i=0;
  7.  
  8. While ($i<=$times) {
  9. imagefilter($image[$id], IMG_FILTER_GAUSSIAN_BLUR);
  10. $i++;
  11. }
  12. }


Dan moet je dat ook in die newimg functie toepassen (anders werkt het nog niet):

  1. <?php // voor de kleurtjes
  2. function newimg($id, $width, $height)
  3. {
  4. global $image;
  5. header("content-type: image/png");
  6. $image[$id] = ImageCreate($width, $height);
  7. $achtergrond = ImageColorAllocate($image[$id], 255, 255, 255);
  8. $black = ImageColorAllocate($image[$id], 0, 0, 0);
  9.  
  10. ImageLine($image[$id], 0, 0, $width, 0, $black);
  11. ImageLine($image[$id], 0, $height-1, $width, $height-1, $black);
  12. ImageLine($image[$id], 0, 0, 0, $height-1, $black);
  13. ImageLine($image[$id], $width-1, 0, $width-1, $height-1, $black);
  14.  
  15. imagePNG($image[$id]);
  16. imagedestroy($image[$id]);
  17. }
  18.  
  19. echo newimg(0, 500, 500);
Offline Jero3n - 08/04/2007 14:54 (laatste wijziging 08/04/2007 15:54)
Avatar van Jero3n PHP interesse oke, ik had wat doms gedaan, maarja, dat heb ik nu veranderd.
maar nu heb ik nog een vraagje: hoe kan ik nou die blur en die colorize toepassen?
ik heb nu dit:

  1. <?php
  2. function newimg($id, $width, $height)
  3. {
  4. header("content-type: image/png");
  5. $image[$id] = ImageCreate($width, $height);
  6. $achtergrond = ImageColorAllocate($image[$id], 255, 255, 255);
  7. $black = ImageColorAllocate($image[$id], 0, 0, 0);
  8.  
  9. ImageLine($image[$id], 0, 0, $width, 0, $black);
  10. ImageLine($image[$id], 0, $height-1, $width, $height-1, $black);
  11. ImageLine($image[$id], 0, 0, 0, $height-1, $black);
  12. ImageLine($image[$id], $width-1, 0, $width-1, $height-1, $black);
  13.  
  14. imagePNG($image[$id]);
  15. }
  16.  
  17.  
  18. function gaussian_blur($id, $times) {
  19. global $image;
  20.  
  21. $i=0;
  22.  
  23. While ($i<=$times) {
  24. imagefilter($image[$id], IMG_FILTER_GAUSSIAN_BLUR);
  25. $i++;
  26. }
  27. }
  28.  
  29. function colorize($id, $red, $green, $blue) {
  30. global $image;
  31.  
  32. imagefilter($image[$id], IMG_FILTER_COLORIZE, $red, $green, $blue);
  33. }
  34.  
  35. function showimg($id) {
  36. imagePNG($image[$id]);
  37. }
  38.  
  39. global $image;
  40.  
  41. newimg(0, 500, 500);
  42. colorize(0, 0, 255, 0);
  43.  
  44. echo showimg(0);
  45. imagedestroy($image[$id]);
  46. ?>


wil iemand me plz helpen?
Offline Dark_Paul - 08/04/2007 17:14
Avatar van Dark_Paul PHP ver gevorderde Dan moet je returnen ipv outputten in je functies.
Offline Jero3n - 09/04/2007 09:43 (laatste wijziging 09/04/2007 09:58)
Avatar van Jero3n PHP interesse moet ik dan doen:

return $image[$id] ?

EDIT:
dat zou dan zo worden:

  1. <?php
  2. function newimg($id, $width, $height)
  3. {
  4. header("content-type: image/png");
  5. $image[$id] = ImageCreate($width, $height);
  6. $achtergrond = ImageColorAllocate($image[$id], 255, 255, 255);
  7. $black = ImageColorAllocate($image[$id], 0, 0, 0);
  8.  
  9. ImageLine($image[$id], 0, 0, $width, 0, $black);
  10. ImageLine($image[$id], 0, $height-1, $width, $height-1, $black);
  11. ImageLine($image[$id], 0, 0, 0, $height-1, $black);
  12. ImageLine($image[$id], $width-1, 0, $width-1, $height-1, $black);
  13.  
  14. ImagePNG($image[$id]);
  15. }
  16.  
  17.  
  18. function gaussian_blur($id, $times) {
  19. global $image;
  20.  
  21. $i=0;
  22.  
  23. While ($i<=$times) {
  24. imagefilter($image[$id], IMG_FILTER_GAUSSIAN_BLUR);
  25. $i++;
  26.  
  27. return $image[$id];
  28. }
  29. }
  30.  
  31. function colorize($id, $red, $green, $blue) {
  32. global $image;
  33.  
  34. imagefilter($image[$id], IMG_FILTER_COLORIZE, $red, $green, $blue);
  35.  
  36. return $image[$id];
  37. }
  38.  
  39. global $image;
  40.  
  41. echo newimg(0, 500, 500);
  42. echo colorize(0, 0, 255, 0);
  43.  
  44. imagedestroy($image[$id]);
  45. ?>


dat geeft een zwart vierkant, dus nog steeds zonder colorize... 
Offline Dark_Paul - 09/04/2007 10:08
Avatar van Dark_Paul PHP ver gevorderde Ik ben niet zo handig met GD, maar misschien werkt dit:
  1. <?php
  2. function newimg($id, $width, $height)
  3. {
  4. header("content-type: image/png");
  5. $image[$id] = ImageCreate($width, $height);
  6. $achtergrond = ImageColorAllocate($image[$id], 255, 255, 255);
  7. $black = ImageColorAllocate($image[$id], 0, 0, 0);
  8.  
  9. ImageLine($image[$id], 0, 0, $width, 0, $black);
  10. ImageLine($image[$id], 0, $height-1, $width, $height-1, $black);
  11. ImageLine($image[$id], 0, 0, 0, $height-1, $black);
  12. ImageLine($image[$id], $width-1, 0, $width-1, $height-1, $black);
  13.  
  14. return $image[$id];
  15. }
  16.  
  17.  
  18. function gaussian_blur($id, $times) {
  19. global $image;
  20.  
  21. $i=0;
  22.  
  23. While ($i<=$times) {
  24. imagefilter($image[$id], IMG_FILTER_GAUSSIAN_BLUR);
  25. $i++;
  26.  
  27. return $image[$id];
  28. }
  29. }
  30.  
  31. function colorize($id, $red, $green, $blue) {
  32. global $image;
  33.  
  34. imagefilter($image[$id], IMG_FILTER_COLORIZE, $red, $green, $blue);
  35.  
  36. return $image[$id];
  37. }
  38.  
  39. function create($img) {
  40. ImagePNG($img);
  41. imagedestroy($img);
  42. }
  43.  
  44.  
  45. $img = newimg(0, 500, 500);
  46. $img = colorize(0, 0, 255, 0);
  47.  
  48. echo $image[$id];
  49. ?>
Offline Jero3n - 09/04/2007 10:25
Avatar van Jero3n PHP interesse ten eerste:
create roep je niet aan, dus die doet niets...
maar verder krijg ik dit als ik die open:

Citaat:
<br />
<b>Warning</b>: imagefilter() expects parameter 1 to be resource, null given in <b>C:Xamppxampphtdocsindex.php</b> on line <b>34</b><br />


:s
Offline Dark_Paul - 09/04/2007 11:09
Avatar van Dark_Paul PHP ver gevorderde Owjah, create ben ik vergeten ><. Maar dat kan je zelf ook nog wel aanroepen, piece of cake.
Zet weer eens 'global $image' boven $img = ...
Offline Jero3n - 09/04/2007 14:06 (laatste wijziging 09/04/2007 14:07)
Avatar van Jero3n PHP interesse ik heb het nu iets veranderd, nl. dat er een knop komt dat als je er op klikt dat hij de colorize uitvoert.

  1. <?php
  2. function newimg($id, $width, $height)
  3. {
  4. header("content-type: image/png");
  5. $image[$id] = ImageCreate($width, $height);
  6. $achtergrond = ImageColorAllocate($image[$id], 255, 255, 255);
  7. $black = ImageColorAllocate($image[$id], 0, 0, 0);
  8.  
  9. ImageLine($image[$id], 0, 0, $width, 0, $black);
  10. ImageLine($image[$id], 0, $height-1, $width, $height-1, $black);
  11. ImageLine($image[$id], 0, 0, 0, $height-1, $black);
  12. ImageLine($image[$id], $width-1, 0, $width-1, $height-1, $black);
  13.  
  14. ImagePNG($image[$id]);
  15. imagedestroy($image[$id]);
  16.  
  17. return $image[$id];
  18. }
  19.  
  20.  
  21. function gaussian_blur($id, $times) {
  22. global $image;
  23.  
  24. $i=0;
  25.  
  26. While ($i<=$times) {
  27. imagefilter($image[$id], IMG_FILTER_GAUSSIAN_BLUR);
  28. $i++;
  29.  
  30. return $image[$id];
  31. }
  32. }
  33.  
  34. function colorize($id, $red, $green, $blue) {
  35. global $image;
  36.  
  37. imagefilter($image[$id], IMG_FILTER_COLORIZE, $red, $green, $blue);
  38.  
  39. return $image[$id];
  40. }
  41.  
  42. function create() {
  43. ImagePNG($img);
  44. imagedestroy($img);
  45. }
  46.  
  47. global $image;
  48.  
  49. $img = newimg(0, 500, 500);
  50.  
  51. $make = create();
  52.  
  53. echo $image[$id];
  54. ?>
  55.  
  56. <html>
  57. <head>
  58. <title>Test!</title>
  59. </head>
  60. <body>
  61. <form name="form" method="post" action="">
  62. <input type="button" name="colorize_knop" value="Colorize" onclick="<? $img = colorize(0, 0, 255, 0); ?>">
  63. </form>
  64. </body></html>


maar nu zie je die knop niet eens! :S

en ik heb het eerst ook zonder die knop gedaan, dus er alleen global $image en $make = create() aan toegevoegt, en dat gaf ook fouten...
Offline Dark_Paul - 09/04/2007 14:16 (laatste wijziging 09/04/2007 14:17)
Avatar van Dark_Paul PHP ver gevorderde Hoe vaak moet dit nog gezegd worden?!
PHP IS SERVERSIDE!!! Je kan dus geen CLIENT-SIDE acties uitvoeren.
Als jij met een klik op de knop een PHP-functie aan wilt roepen, zal je met AJAX aan de gang moeten.

Edit:
kijk ook even mijn create() functie, die vraagt een parameter.
Jij moet dus $img opgeven als parameter.
Zo dus:
$img = newimg(parameters);
$img = colorize(parameters);
echo create($img);
Dan wordt de afbeelding gemaakt uit de meegegeven waarde van $img.
Offline Jero3n - 09/04/2007 14:28 (laatste wijziging 09/04/2007 14:31)
Avatar van Jero3n PHP interesse maar hoe kan ik dan toch zorgen dat als ik op de knop druk hij dat doet?
misschien dat als ik dat in een ander bestand zet, en dan zet ik als action: colorize.php.
maar dat is ook zo omslachtig.
moet ik voor elke filter een ander bestand aanmaken..

P.S jij bedoeld zeker zo:
  1. <?php
  2. function newimg($id, $width, $height)
  3. {
  4. header("content-type: image/png");
  5. $image[$id] = ImageCreate($width, $height);
  6. $achtergrond = ImageColorAllocate($image[$id], 255, 255, 255);
  7. $black = ImageColorAllocate($image[$id], 0, 0, 0);
  8.  
  9. ImageLine($image[$id], 0, 0, $width, 0, $black);
  10. ImageLine($image[$id], 0, $height-1, $width, $height-1, $black);
  11. ImageLine($image[$id], 0, 0, 0, $height-1, $black);
  12. ImageLine($image[$id], $width-1, 0, $width-1, $height-1, $black);
  13.  
  14. ImagePNG($image[$id]);
  15.  
  16. return $image[$id];
  17. }
  18.  
  19.  
  20. function gaussian_blur($id, $times) {
  21. global $image;
  22.  
  23. $i=0;
  24.  
  25. While ($i<=$times) {
  26. imagefilter($image[$id], IMG_FILTER_GAUSSIAN_BLUR);
  27. $i++;
  28.  
  29. return $image[$id];
  30. }
  31. }
  32.  
  33. function colorize($id, $red, $green, $blue) {
  34. global $image;
  35.  
  36. imagefilter($image[$id], IMG_FILTER_COLORIZE, $red, $green, $blue);
  37.  
  38. return $image[$id];
  39. }
  40.  
  41. function create($img) {
  42. ImagePNG($img);
  43. imagedestroy($img);
  44. }
  45.  
  46. global $image;
  47.  
  48. $img = newimg(0, 500, 500);
  49. $img = colorize(0, 0, 255, 0);
  50.  
  51. echo create($img);
  52. ?>


dat geeft ook een zwart vierkant, omdat ik als in newimg() imagePNG doe...
en als ik dat weg haal, geeft ie dit:

Citaat:
<br />
<b>Warning</b>: imagefilter() expects parameter 1 to be resource, null given in <b>C:Xamppxampphtdocsindex.php</b> on line <b>34</b><br />
<br />
<b>Warning</b>: imagepng(): supplied argument is not a valid Image resource in <b>C:Xamppxampphtdocsindex.php</b> on line <b>40</b><br />
<br />
<b>Warning</b>: imagedestroy(): supplied argument is not a valid Image resource in <b>C:Xamppxampphtdocsindex.php</b> on line <b>41</b><br />


dan heb ik dus alleen de regel met ImagePNG($image[$id]) bij de newimg() function weg gehaalt
Offline Dark_Paul - 09/04/2007 14:37 (laatste wijziging 09/04/2007 14:37)
Avatar van Dark_Paul PHP ver gevorderde Je moet in newimg() ook geen ImagePNG doen, dan wordt de afbeelding 'gedrukt' om het zo maar te noemen.
Het idee was om met newimg() de basis van de afbeelding te leggen en die returnen, vervolgens met de functies van jou effecten eroverheen te zetten, en dan met create() de afbeelding 'drukken'.
Offline Jero3n - 09/04/2007 14:42
Avatar van Jero3n PHP interesse dat is het probleem juist.
zoals ik net al zei, als ik ImagePNG($image[$id]) weghaal, dus 'm niet 'druk', krijgt ik die foutmeldingen van m'n vorige post (dat wat ik heb gequote)
Offline Dark_Paul - 09/04/2007 15:00 (laatste wijziging 09/04/2007 15:04)
Avatar van Dark_Paul PHP ver gevorderde Volgens mij zat je onnodig moeilijk te doen met die globals en arrays.
  1. <?php
  2. header("content-type: image/png");
  3.  
  4. function newimg($width, $height) {
  5. $image = ImageCreate($width, $height);
  6. $achtergrond = ImageColorAllocate($image, 255, 255, 255);
  7. $black = ImageColorAllocate($image, 0, 0, 0);
  8.  
  9. ImageLine($image, 0, 0, $width, 0, $black);
  10. ImageLine($image, 0, $height-1, $width, $height-1, $black);
  11. ImageLine($image, 0, 0, 0, $height-1, $black);
  12. ImageLine($image, $width-1, 0, $width-1, $height-1, $black);
  13.  
  14. return $image;
  15. }
  16.  
  17. function gaussian_blur($img, $times) {
  18. $i=0;
  19. for ($i=0; $i < $times; $i++){
  20. $image = imagefilter($img, IMG_FILTER_GAUSSIAN_BLUR);
  21. }
  22. return $image
  23. }
  24.  
  25. function colorize($img, $red, $green, $blue) {
  26. $image = imagefilter($img, IMG_FILTER_COLORIZE, $red, $green, $blue);
  27. return $image;
  28. }
  29.  
  30. function create($img) {
  31. ImagePNG($img);
  32. imagedestroy($img);
  33. }
  34.  
  35. $img = newimg(0, 500, 500);
  36. $img = colorize($img, 0, 255, 0);
  37. echo create($img);
  38.  
  39. ?>

Niet getest..

Edit: je moet een return nooit IN een while zetten, maar altijd aan het einde van een functie.. Na de return stopt de functie namelijk.

Edit2: ik heb nog wat dingen aangepast, niet getest.
Offline Jero3n - 09/04/2007 15:24 (laatste wijziging 09/04/2007 16:35)
Avatar van Jero3n PHP interesse
Citaat:
Parse error: syntax error, unexpected '}' in C:Xamppxampphtdocsindex.php on line 23


wat is er nu weer fout? 
Offline Dark_Paul - 09/04/2007 17:20 (laatste wijziging 09/04/2007 17:21)
Avatar van Dark_Paul PHP ver gevorderde Een parse-error, goed kijken dus.. Wat zegt de error?

Als je goed kijkt, zie je dat ik op lijn 22 een ; ben vergeten. Dit is standaard debuggen en moet je zelf dus ook kunnen als je wilt gaan PHP'en.
Offline JBke - 09/04/2007 17:23
Avatar van JBke PHP gevorderde wil niet zeggen dat de fout zich op regel 31 bevind maar als je bvb een ; vergeten bent kan het zijn dat het zich pas resulteert in regel 31.

Grtz.
Offline Jero3n - 09/04/2007 17:26 (laatste wijziging 10/04/2007 07:20)
Avatar van Jero3n PHP interesse k, dan wordt het dit

  1. <?php
  2. header("content-type: image/png");
  3.  
  4. function newimg($id, $width, $height) {
  5. $image = ImageCreate($width, $height);
  6. $achtergrond = ImageColorAllocate($image, 255, 255, 255);
  7. $black = ImageColorAllocate($image, 0, 0, 0);
  8.  
  9. ImageLine($image, 0, 0, $width, 0, $black);
  10. ImageLine($image, 0, $height-1, $width, $height-1, $black);
  11. ImageLine($image, 0, 0, 0, $height-1, $black);
  12. ImageLine($image, $width-1, 0, $width-1, $height-1, $black);
  13.  
  14. return $image;
  15. }
  16.  
  17. function gaussian_blur($img, $times) {
  18. $i=0;
  19. for ($i=0; $i < $times; $i++){
  20. $image = imagefilter($img, IMG_FILTER_GAUSSIAN_BLUR);
  21. }
  22. return $image;
  23. }
  24.  
  25. function colorize($img, $red, $green, $blue) {
  26. $image = imagefilter($img, IMG_FILTER_COLORIZE, $red, $green, $blue);
  27. return $image;
  28. }
  29.  
  30. function create($img) {
  31. ImagePNG($img);
  32. imagedestroy($img);
  33. }
  34.  
  35. $img = newimg(0, 500, 500);
  36. $img = colorize($img, 0, 255, 0);
  37. echo create($img);
  38.  
  39. ?>


dat geeft dit...

Citaat:
<br />
<b>Warning</b>: imagepng(): supplied argument is not a valid Image resource in <b>C:Xamppxampphtdocsindex.php</b> on line <b>31</b><br />
<br />
<b>Warning</b>: imagedestroy(): supplied argument is not a valid Image resource in <b>C:Xamppxampphtdocsindex.php</b> on line <b>32</b><br />


wat is er nou fout? :S
Offline CDNC - 10/04/2007 09:32 (laatste wijziging 10/04/2007 09:32)
Avatar van CDNC PHP ver gevorderde Kom je nou voor elke fout hier de oplossing vragen en zelf de pootjes omhoog leggen ofzo? je zou eens wat kunnen opzoeken over GD, dan zul je wel zien dat je de mist in gaat op r26...

ok,ok, jij ging er niet de mist in, maar die persoon dat het voor je heeft gemaakt, zoek nou maar gewoon die fucntie op op PHP.net en vind de fout.
Offline Jero3n - 10/04/2007 11:56 (laatste wijziging 10/04/2007 18:21)
Avatar van Jero3n PHP interesse ik heb het zelf geschreven, nadat ik wat had gelezen over gd.
dus de fout zit in r26?
ik zal is kijken 

Update:
ik heb de fout gevonden, en nu werkt ie! eindelijk... 
dit is de code nu:
  1. <?php
  2. header("content-type: image/png");
  3.  
  4. function newimg($id, $width, $height) {
  5. $image = ImageCreate($width, $height);
  6. $achtergrond = ImageColorAllocate($image, 255, 255, 255);
  7. $black = ImageColorAllocate($image, 0, 0, 0);
  8.  
  9. ImageLine($image, 0, 0, $width, 0, $black);
  10. ImageLine($image, 0, $height-1, $width, $height-1, $black);
  11. ImageLine($image, 0, 0, 0, $height-1, $black);
  12. ImageLine($image, $width-1, 0, $width-1, $height-1, $black);
  13.  
  14. return $image;
  15. }
  16.  
  17. function gaussian_blur($img, $times) {
  18. $i=0;
  19. for ($i=0; $i < $times; $i++){
  20. imagefilter($img, IMG_FILTER_GAUSSIAN_BLUR);
  21. }
  22. return $img;
  23. }
  24.  
  25. function colorize($img, $red, $green, $blue) {
  26. imagefilter($img, IMG_FILTER_COLORIZE, $red, $green, $blue);
  27.  
  28. return $img;
  29. }
  30.  
  31. function create($img) {
  32. ImagePNG($img);
  33. imagedestroy($img);
  34. }
  35.  
  36. $img = newimg(0, 500, 500);
  37. $img = colorize($img, 0, 255, 0);
  38. $img = gaussian_blur($img, 10);
  39.  
  40. echo create($img);
  41. ?>


enne, de fout was dat er was gedaan $img = imagefilter(); en het moet zijn imagefilter() zonder $img =
dat wist ik wel, maar ik geloof dark_paul had dat veranderd, omdat hij niet zo veel van gd afwist, zoals hij al zei.
en het was me nog niet opgevallen dat hij dat had gedaan... 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.381s