Vreemde GD fout..
Ik heb deze php code geschreven, en opzich is er niets fouts aan, maar om een of andere reden stopt hij ermee na 255 pixels gekleurd te hebben.
Een voorbeeld van de output
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
error_reporting(E_ALL);
set_time_limit(0);
header("Content-type: image/png");
$im = imagecreate(600, 600)
or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 0, 0, 0);
$i = 0;
$rgb = 155;
for ($x = 0; $x < 600; $x++) {
for ($y = 0; $y < 600; $y++) {
$color = imagecolorallocate($im, $rgb, $rgb, $rgb);
imagesetpixel($im, $x, $y, $color);
$i++;
}
}
imagepng($im);
imagedestroy($im);
?>
error_reporting(E_ALL);
set_time_limit(0);
header("Content-type: image/png");
$im = imagecreate(600, 600)
or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 0, 0, 0);
$i = 0;
$rgb = 155;
for ($x = 0; $x < 600; $x++) {
for ($y = 0; $y < 600; $y++) {
$color = imagecolorallocate($im, $rgb, $rgb, $rgb);
imagesetpixel($im, $x, $y, $color);
$i++;
}
}
imagepng($im);
imagedestroy($im);
?>
Een voorbeeld van de output
Gesponsorde koppelingen:
Ik heb het ook op andere groottes geprobeerd maar hij kapt altijd na 255 pixels, erg onlogisch :/
ik heb niet zon verstand van GD, maar:
for ($x = 0; $x < 600; $x++) {
for ($y = 0; $y < 600; $y++) {
Daar heb je het over $x en $y... moet je die niet eerst even definieren?
nog maals: ik heb niet ozn verstand van GD, dus het zou kunnen zijn dat dat al is 'ingesteld' bij GD.. maar dat is wat mij opvalt ;-)
edit:
o, nee.. in de for loop staat het al... oops :$
voor de rest weet ikk nix :-(
for ($x = 0; $x < 600; $x++) {
for ($y = 0; $y < 600; $y++) {
Daar heb je het over $x en $y... moet je die niet eerst even definieren?
nog maals: ik heb niet ozn verstand van GD, dus het zou kunnen zijn dat dat al is 'ingesteld' bij GD.. maar dat is wat mij opvalt ;-)
edit:
o, nee.. in de for loop staat het al... oops :$
voor de rest weet ikk nix :-(
Gewijzigd op 01/01/1970 01:00:00 door niek s
Ik krijg deze output op je script (lijkt te werken)
Ik krijg dezelfde uitput als DaeDaluz: PHP 5.1.4, kan niet zo gauw de fout vinden.
Het hangt van je GD versie af, misschien?
Hier versie 2.0.28.
Hier versie 2.0.28.
Bij mij stopt het script niet bij 255, als ik de achtergrond kleur weghaal, dan werkt het wel goed.
GD versie: 2.0.28 compatible
Maar zo helpen wij DaeDaluz niet.
GD versie: 2.0.28 compatible
Maar zo helpen wij DaeDaluz niet.
Waarom teken je pixel voor pixel? Je kan beter met imagefilledrectangle() oid tekenen.
http://nl2.php.net/manual/nl/function.imagefilledrectangle.php
http://nl2.php.net/manual/nl/function.imagefilledrectangle.php
Maar ik snap het probleem niet zo goed, het plaatje dat ik op de site van Jan zie, is hetzelfde als het voorbeeld van DaeDaluz!?
$color = imagecolorallocate($im, $rgb, $rgb, $rgb);
Die staat binnen de for-lus, zou het kunnen zijn dat hij uitgaat van een gif-plaatje, en dat je dus maximaal maar 255 kleuren kan allocate'en?
Probeer je trouwens toevallig een soort alle-kleuren-van-de-regenboog scriptje te maken, maar dan in zwart-wit? :)
Die staat binnen de for-lus, zou het kunnen zijn dat hij uitgaat van een gif-plaatje, en dat je dus maximaal maar 255 kleuren kan allocate'en?
Probeer je trouwens toevallig een soort alle-kleuren-van-de-regenboog scriptje te maken, maar dan in zwart-wit? :)
Gewijzigd op 01/01/1970 01:00:00 door Jelmer rrrr
Het idee was om random plaatjes te laten generen met elke pixel een andere kleur, maar toen hij bleef steken op 255 pixels heb ik heb versimpeld om uit te zoeken waar de fout zat.
Ik zal morgen mijn GD wel updaten kijken of dat helpt :)
Ik zal morgen mijn GD wel updaten kijken of dat helpt :)
Roy:
Waarom teken je pixel voor pixel? Je kan beter met imagefilledrectangle() oid tekenen.
http://nl2.php.net/manual/nl/function.imagefilledrectangle.php
http://nl2.php.net/manual/nl/function.imagefilledrectangle.php
Als ik een grijs vierkant van 600*600 had gewild had ik de achtergrondkleur wel grijs gemaakt ;)



