如何随机更改屏幕上每个像素的颜色

时间:2010-11-09 17:23:34

标签: java android

我希望屏幕上的每个像素在红色,蓝色,绿色,白色和黑色之间闪烁,但彼此独立。这可能吗?我一直在寻找任何运气。任何有关从哪里开始的帮助将不胜感激。

1 个答案:

答案 0 :(得分:6)

您可以使用图片来完成。例如,在32位RGBA图像中,每个像素由4个部分组成

red = 8 bits
green = 8 bits
blue = 8 bits
alpha = 8 bits

每个都可以设置为0到255之间的值;

所以你只需将图像视为一个字节数组并更改每个像素的颜色值。

Image image = CreateImage();

for(int i = 0; i < image.size(); i++)
    image[i] = RandomNumberBetween(0, 255);

或者从字节数组

创建图像
int byteArray[width * height * 4];

for(int i = 0; i < width * height * 4; i++)
       image[i] = RandomNumberBetween(0, 255);

Image image = createImageFromByteArray(byteArray);

您还可以创建一个简单的opengl场景并在着色器中执行。

float rand(vec2 co){
    return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
}

void main(void){
     gl_FragColor = rand(gl_TexCoord[0].xy);
}