I've got the code below to pull hex values from a database and create an image of that colour. There's over a thousand values, so it's looping to create an image for them all. It seems to work fine except it just keeps overwriting the first image (0.jpg) instead of creating new ones 0.jpg, 1.jpg 2.jpg etc. Any idea where I'm going wrong?
Oh yeah, I'm converting the hex to rgb in there too, that works fine.
<?php
require ('connect.php');
$sql = mysql_query("SELECT * FROM hex")
or die(mysql_error());
while($colors = mysql_fetch_array( $sql ))
{
$x = 0;
$imgname = $x.".jpg";
$color = $colors['value'];
if (strlen($color) == 6)
list($r, $g, $b) = array($color[0].$color[1],
$color[2].$color[3],
$color[4].$color[5]);
$r = hexdec($r); $g = hexdec($g); $b = hexdec($b);
header("Content-type: image/jpeg");
$image = imagecreate( 720, 576 );
imagecolorallocate($image,$r, $g, $b);
imagejpeg($image, $imgname);
imagedestroy($image);
$x++;
}
?>
$x = 0;
is executed in each iteration of the while loop. You need to move the initialization in front the loop.You just need to move
$x = 0;
to before the start of the loop.There seem to be a few other things wrong, too