我正在寻找一个只是噪音的形象,也许是这样的:
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由于该功能/平台组合的限制而引起的噪音.