我正在尝试,因为我潜意识中最熟悉的原因,会产生一张像雪崩一样的照片。
使用PHP5和GD v2.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以反映黑色或白色。
但是,这会抛出(有趣)错误:“警告:无法修改标题信息 - 已经在/ var / www / play /中发送的文件(在/var/www/play/snowcrash2.php:32处开始输出)第51行的snowcrash2.php“
将标题(...)移动到第一行(试图将标题放在可能及时发送的某个位置)导致出现以下错误(图像形式):图像“{ {3}}“无法显示,因为它包含错误。”
嗯...帮助?
唯一出现的另一个话题是http://127.0.0.1/play/snowcrash2.php,它没有被接受的答案,据我所知,与我遇到的问题无关。
答案 0 :(得分:1)
当浏览器显示图像时,它会单独下载并放在页面上。因此,您无法在一个请求中发送HTML和图片。你需要的是一个html / php页面,它有一个标签,src设置为另一个页面,只会发送图像的数据。
例如: (的index.php)
<html>
<body>
<image src="pic.php" />
</body>
</html>
现在在另一个名为(pic.php)的文件中,您将生成图像并将其发送回带有“内容类型”标题的响应,绝对没有其他内容(除了其他标题可能)
例如取自http://www.webdeveloper.com/forum/showpost.php?p=879552&postcount=2
<?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);
?>