Vreemde GD fout..

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

DaeDaluz

DaeDaluz

27/07/2006 16:17:00
Quote Anchor link
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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);
?>


Een voorbeeld van de output
 
PHP hulp

PHP hulp

08/02/2023 11:20:31
 
DaeDaluz

DaeDaluz

27/07/2006 18:16:00
Quote Anchor link
Ik heb het ook op andere groottes geprobeerd maar hij kapt altijd na 255 pixels, erg onlogisch :/
 
Niek s

niek s

27/07/2006 18:20:00
Quote Anchor link
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 :-(
Gewijzigd op 01/01/1970 01:00:00 door niek s
 
Jan Koehoorn

Jan Koehoorn

27/07/2006 18:22:00
Quote Anchor link
Ik krijg deze output op je script (lijkt te werken)
 
Steff   an

Steff an

27/07/2006 18:30:00
Quote Anchor link
Ik krijg dezelfde uitput als DaeDaluz: PHP 5.1.4, kan niet zo gauw de fout vinden.
 
Jan Koehoorn

Jan Koehoorn

27/07/2006 18:33:00
Quote Anchor link
Het hangt van je GD versie af, misschien?
Hier versie 2.0.28.
 
Steff   an

Steff an

27/07/2006 18:35:00
Quote Anchor link
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.
 
Roy Bongers

Roy Bongers

27/07/2006 18:46:00
Quote Anchor link
Waarom teken je pixel voor pixel? Je kan beter met imagefilledrectangle() oid tekenen.


http://nl2.php.net/manual/nl/function.imagefilledrectangle.php
 
Niek s

niek s

27/07/2006 19:25:00
Quote Anchor link
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!?
 
Jelmer -

Jelmer -

27/07/2006 19:59:00
Quote Anchor link
$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? :)
Gewijzigd op 01/01/1970 01:00:00 door Jelmer -
 
DaeDaluz

DaeDaluz

27/07/2006 20:11:00
Quote Anchor link
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 :)
 
DaeDaluz

DaeDaluz

27/07/2006 20:27:00
Quote Anchor link
Roy:
Waarom teken je pixel voor pixel? Je kan beter met imagefilledrectangle() oid tekenen.


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 ;)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.