我一直在制作油漆应用程序,并且我已经用油漆刷成功实现了绘图。我的问题是我不希望在已经绘制颜色的屏幕上重新绘制颜色。看看截图..我我正在使用OpenGl ES ..我试图将屏幕像素的颜色与当前刷子的颜色相匹配,但我无法正确使用..任何人都可以告诉我哪里出错了?感谢..
probliem的屏幕截图:http://imageshack.us/photo/my-images/842/screenshot20110726at601.png/
我在这里粘贴我的代码:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
CGRect bounds =[self bounds];
UITouch *touch = [[event touchesForView:self] anyObject];
//glDisable(GL_BLEND);
glEnable(GL_BLEND);
Byte pixel[4];
glReadPixels(location.x,location.y, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &pixel);
NSLog(@"%d %d %d %d",pixel[0],pixel[1],pixel[2],pixel[3]);
r_comp=(float)pixel[0]/255;
g_comp=(float)pixel[1]/255;
b_comp=(float)pixel[2]/255;
artbrushAppDelegate *app=(artbrushAppDelegate *)[[UIApplication sharedApplication]delegate];
if(r_comp==app.rg && g_comp==app.gg && b_comp==app.bg)
// app.rg,app.bg,app.gg are brush colors saved in global varable
{
glEnable(GL_BLEND);
}
else
{
glDisable(GL_BLEND);
}
答案 0 :(得分:0)
你可以应用“图层”机制,其中油漆是不透明的,但它们整体层是部分透明的..我在某个地方的论坛中阅读..