Ben sadece gürültü, bunun gibi belki bir şey bir resim yapmak için arıyorum:

İdeal Ben de rengini değiştirmek mümkün olmak istiyorum. Bu oluşturmak için nasıl herhangi bir fikir?
Bu rastgele gürültü oluşturmak oldukça basittir. Sen GD functions gibi PHP'nin görüntü kütüphaneleri bazı oldukça kolayca gerçekleştirebilirsiniz. Ben Imagemagick benzer olurdu eminim.
Tamamen rastgele gürültü oluşturmak istiyorsa, her renk ve her piksel için rastgele değerler kullanabilirsiniz. İşte GD ile bu gibi görünebilir:
//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), rand(0,255), rand(0,255));
imagesetpixel($im, $i, $j, $color);
}
}
header('Content-Type: image/png');
imagepng($im);
: Bu üretir
Ancak, açıkça haberi örnek görüntü tamamen rastgele renk gürültü gibi görünmüyor. Daha iki renk biri arasında keyfi bir seçim, ya biraz gri piksel ya da biraz renkli piksel gibi görünüyor. Daha bunun gibi başarmak olabilir:
//two-color random noise
$x = 150;
$y = 150;
$im = imagecreatetruecolor($x,$y);
$color1 = imagecolorallocate($im, 200, 240, 242);
$color2 = imagecolorallocate($im,220,220,220);
imagefill($im,0,0,$color1);
for($i = 0; $i < $x; $i++) {
for($j = 0; $j < $y; $j++) {
if (mt_rand(0,1) == 1) imagesetpixel($im, $i, $j, $color2);
}
}
header('Content-Type: image/png');
imagepng($im);
: Bu üretir
Sizin örnek blockier görünüm üretmek için küçük gruplar halinde görünmesini görünen piksel ile, daha karmaşık bir bit hala görünüyor. Eğer isteseydi döngü mantığı ayarlayarak, ya da küçük kareler yerine bireysel piksel renklendirme tarafından bu taklit olabilir.
Nesil bu tür hakkında ilginç bir şey yerine mt_rand() bunu kullanabilirsiniz eğer gerçekten Windows platformları üzerinde rand() fonksiyonunun dökümünü görebilirsiniz olmasıdır. Discernible patterns can develop nedeniyle bu işlev / platform kombinasyonu sınırlamaları gürültü.
Evet, kullanmanız gerekir:
ImageCreate[True]Color()for döngülerrand() veya mt_rand()ImageColorAllocate()ImageSetPixelLol, bir reçete gibi geliyor. Daha fazla yardıma ihtiyacınız varsa bana bildirin.
Kısalık bir şey yapmak zorunda için üzgünüm, burada bir örnek kod:
<?php
$im = ImageCreateTrueColor(200, 300);
if (is_resource($im)) {
$blue = array_map('hexdec', str_split('0000FF', 2));
$white = array_map('hexdec', str_split('FFFFFF', 2));
$blue = ImageColorAllocate($im, $blue[0], $blue[1], $blue[2]);
$white = ImageColorAllocate($im, $white[0], $white[1], $white[2]);
for ($w = 1; $w <= 200; $w++) {
for ($h = 1; $h <= 300; $h++) {
if (mt_rand(1, 100) >= 50)
ImageSetPixel($im, $w, $h, $blue);
else
ImageSetPixel($im, $w, $h, $white);
}
}
}
header('Content-type: image/png');
ImagePNG($im, null, 9);
ImageDestroy($im);
?>