如何使用PHP制作嘈杂的背景图片?

前端之家收集整理的这篇文章主要介绍了如何使用PHP制作嘈杂的背景图片?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在寻找一个只是噪音的形象,也许是这样的:

alt text http://www.loriswebs.com/tutorials/images/tealtexture3.jpg

理想情况下,我也想改变颜色.关于如何产生这个的任何想法?

产生随机噪声非常简单.您可以很容易地完成这一点,其中包括一些PHP的图像库,包括 GD functions.我相信在ImageMagick中将是类似的.

如果要产生完全随机的噪点,则可以为每个颜色和每个像素使用随机值. GD可能看起来像这样:

//random colored noise
$x = 150;
$y = 150;
$im = imagecreatetruecolor($x,$y);
for($i = 0; $i < $x; $i++) {
    for($j = 0; $j < $y; $j++) {
        $color = imagecolorallocate($im,rand(0,255),255));
        imagesetpixel($im,$i,$j,$color);
    }
}    
header('Content-Type: image/png');
imagepng($im);

生成这个:

但是,您清楚发布的示例图像看起来不像完全随机的颜色噪声.它似乎更像是两种颜色之一的任意选择,一种有点灰色的像素或一个有点色的像素.你可以这样做:

//two-color random noise
$x = 150;
$y = 150;
$im = imagecreatetruecolor($x,$y);
$color1 = imagecolorallocate($im,200,240,242);
$color2 = imagecolorallocate($im,220,220);
imagefill($im,$color1);
for($i = 0; $i < $x; $i++) {
    for($j = 0; $j < $y; $j++) {
        if (mt_rand(0,1) == 1) imagesetpixel($im,$color2);
    }
}
header('Content-Type: image/png');
imagepng($im);

生成这个:

您的示例似乎还有点复杂,像素似乎出现在小组中,从而产生更为复杂的外观.您可以通过调整循环逻辑(如果需要)或着色小方块而不是单个像素来模拟.

关于这种类型的一代的一个有趣的事情是,如果您使用它代替mt_rand(),您可以在Windows平台上实际看到rand()函数的故障. Discernible patterns can develop由于该功能/平台组合的限制而引起的噪音.

猜你在找的PHP相关文章