PHP image creation from hex values in database

前端 未结 2 443
误落风尘
误落风尘 2021-01-28 13:17

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

相关标签:
2条回答
  • 2021-01-28 13:44

    $x = 0; is executed in each iteration of the while loop. You need to move the initialization in front the loop.

    0 讨论(0)
  • 2021-01-28 13:51

    You just need to move $x = 0; to before the start of the loop.

    There seem to be a few other things wrong, too

    $x = 0;
    
    while($colors = mysql_fetch_array( $sql ))
    {
        $imgname = $x.".jpg";
    
        $color = $colors['value'];
    
        // Skip the whole lot if the colour is invalid
        if (strlen($color) != 6)
            continue;
    
        // No need to create an array just to call list()
        $r = hexdec($color[0].$color[1]);
        $g = hexdec($color[2].$color[3]);
        $b = hexdec($color[4].$color[5]);
    
        // There's no need to header() if you're writing to a file
        //header("Content-type: image/jpeg");
        $image = imagecreate( 720, 576 );
        $colour = imagecolorallocate($image, $r, $g, $b);
    
        // You don't actually fill the image with the colour
        imagefilledrectangle($image, 0, 0, 719, 575, $colour);
    
        imagejpeg($image, $imgname);
        imagedestroy($image);
    
        $x++;
    }
    
    0 讨论(0)
提交回复
热议问题