imagesetpixel存在问题,使用php5和gd 2.0(或更高版本)显示图像

imagesetpixel存在问题,使用php5和gd 2.0(或更高版本)显示图像,php,image,png,gd,Php,Image,Png,Gd,出于我潜意识中最为熟知的原因,我正在尝试生成一幅雪崩般的画面 使用PHP5和GDV2.0(或更高版本),我使用以下php/html: <?php $x = $y = 100; $gd = imagecreatetruecolor($x,$y); $w = imagecolorallocate($gd, 255, 255, 255); $b = imagecolorallocate($g

出于我潜意识中最为熟知的原因,我正在尝试生成一幅雪崩般的画面

使用PHP5和GDV2.0(或更高版本),我使用以下php/html:

<?php

            $x = $y = 100;

            $gd = imagecreatetruecolor($x,$y);

            $w  = imagecolorallocate($gd, 255, 255, 255);
            $b  = imagecolorallocate($gd, 0, 0, 0);


            for ($r=1; $r <= $y; $r++) {

                for ($c=1; $c <= $x; $c++) {


                        if (rand(0,1) == 0) {
                            $rand = $w;
                                    }

                        else {
                            $rand = $b;
                                    }

                    imagesetpixel($gd,$r,$c,$rand);

                            }


                        }


echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
    <title></title>
    <link rel="stylesheet" type="text/css" href="css/stylesheet.css" />

</head>

<body page="snowcrash2">

    <?php

        echo "<div id=\"snowcrashimg\">";



header('Content-Type: image/png');
            imagepng($gd);



        echo "</div>";


    ?>

</body>

</html>

我试图在图像的每个“行”的每个“列”上迭代,将像素值设置为1或0以反映黑色或白色

但是,这会抛出一个(有趣的)错误:“警告:无法修改标题信息-标题已经由第51行/var/www/play/snowcrash2.php中的/var/www/play/snowcrash2.php:32)发送”

将标头(…)移动到的前几行(试图将标头放置在可能及时发送的位置)会导致以下错误(以图像形式):无法显示图像“”,因为它包含错误

嗯……帮帮忙



唯一出现的另一个主题是这个,它没有公认的答案,而且据我所知,与我遇到的问题无关。

当浏览器显示图像时,它会单独下载并放在一个页面上。因此,您无法在一个请求中发送HTML和图片。您需要的是一个HTML/php页面它有一个标记,src设置为另一个页面,该页面只发送图像的数据

例如: (index.php)


现在,在另一个名为(pic.php)的文件中,您将生成图像,并使用“content-type”标题将其发送回响应,而不使用任何其他标题(可能除了其他标题)

如取自


先生,你真是个天才,谢谢你!:)我现在想做的就是把它变成一个函数,并且能够从表单中传递x和y值…叹气…;)没问题。也不需要做函数,标签将出现在index.php页面上,动作是pic.php,然后使用$_REQUEST['x']或$_GET['x']读取表单输入有关更多信息,请参阅。
<html>
<body>
<image src="pic.php" />
</body>
</html>
<?php

$number = "";
for ($i = 1; $i <= $lenght; $i++)
{
     $number .= rand(0,9)."";
}

$width = 11*$lenght;
$height = 30;

$img = ImageCreate($width, $height);
$background = imagecolorallocate($img,255,255,255);
$color_black = imagecolorallocate($img,0,0,0);
$color_grey = imagecolorallocate($img,169,169,169);
imagerectangle($img,0, 0,$width-1,$height-1,$color_grey);
imagestring($img, 5, $lenght, 7, $number, $color_black);
//////// VERY IMPORTANT
header('Content-Type: image/png');
//////// VERY IMPORTANT
imagepng($img);
imagedestroy($img); 

?>