hallo!
ich weiß nicht genau, ob das hier ein bug im php ist oder ob ich einen fehler im script habe:
PHP-Code:
<?php
#groesse eines quadrates
$size = 50;
#groesse des bildes
$bigsize = 400;
#abstand der quadrate zum rand
$margin = 2;
#farben
$cols = array( 'FFFF00' , 'ff8000' , '80ff00' , 'ff0000' , '00ff00' , 'FF0080' , '00ff80' , 'ff00ff' , '00ffff' , '8000ff' , '0080ff', '0000ff' );
header("Content-type: image/png");
#bild erstellen
$im = imagecreate( $bigsize , $bigsize );
#hintergrund weiß färben
$bg = imagecolorallocate($im, 0xFF, 0xFF, 0xFF );
imagefill( $im, 0, 0, $bg );
#nun quadrate zeichnen, erst die zeilen dann die spalten
for( $i = 0; $i < $bigsize / $size ; $i++ ) {
for( $j = 0; $j < $bigsize / $size ; $j++ ) {
#zufälligen schlüssel bestimmen
$k = rand( 0 , ( count( $cols ) - 1 ) );
#farbe aussuchen
$fill = imagecolorallocate($im, hexdec( substr( $cols[ $k ] , 0 , 2 ) ) , hexdec( substr( $cols[ $k ] , 2 , 2 ) ) , hexdec( substr( $cols[ $k ] , 4 , 2 ) ) );
#quadrat malen
imagefilledrectangle( $im , ( $i * $size ) + $margin , ( $j * $size ) + $margin , ( ( $i + 1 ) * $size ) - $margin , ( ( $j + 1 ) * $size ) - $margin , $fill );
}
}
#ausgabe und cache leeren
imagepng($im);
imagedestroy($im);
?>
dies funktioniert im prinzip wunderbar, wähle ich $size sehr klein oder $bigsize sehr groß, so werden die hinteren spalten alle in der gleichen farbe eingefärbt. wieso ist das so?
ich habe das ganze ohne srand gemacht, da ich php5 benutze und es dort nicht nötig ist. exakte version: 5.0.5-2