2010-11-09 203 views
0

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

+7

我期待着使用您的癫痫测试应用程序。 ;) – 2010-11-09 17:31:35

回答

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); 
} 
+0

感谢您的回应...它已经有一段时间,因为我已经做了任何Java和即时通讯新的Android开发,所以对于愚蠢的问题抱歉,但这些工作的Android,我没有看到任何东西在Android网站上说,使用图像在android SDK上可用...它看起来像opengl会工作,但我不认为即时通讯准备进入。有没有其他方法可以使这个工作,或者你可以指出一些文档解释使用Android的图像? – BOB 2010-11-09 20:56:51

+1

@BOB在开始提出特定问题之前,可能会帮助您彻底阅读Android开发者文档。那里有很多有用的信息。在SDK文档中简单搜索“图像”会告诉您有一种称为ImageView的显示图像的东西。 – 2010-11-09 21:08:33