0

我有用户可以擦除图像的应用程序。

因此,如果用户触摸图像的某些像素,这些像素的 alfa 应该会变低。

例如,如果我一次触摸图像的 (0,0) 像素,则 (0,0) 像素的不透明度应该变为 0.9。如果我触摸该像素 10 次,我不应该在点 (0,0) 看到图像。

实现它的最佳方法是什么?

4

2 回答 2

0

如果您想要快速(如实时快速),则需要使用 OpenGL。最好的方法是创建一个 alpha 值的蒙版,该蒙版将使用自定义构建的着色器应用于原始图像。

更简单但速度较慢的方法是从 UIImage 获取原始像素并在原始像素数组上应用 alpha 值,然后将其转回 UIImage(这是一个很好的示例

于 2013-05-18T08:04:19.513 回答
0

这是您可以检测触摸值的 coe

CGPoint StartPoint = [touch previousLocationInView:self];

CGPoint Endpoint = [touch locationInView:self];


NSString *str = [NSString stringWithFormat:@"%f",StartPoint.x];
NSString *strlx = [NSString stringWithFormat:@"%f",StartPoint.y];
NSString *strcx = [NSString stringWithFormat:@"%f",Endpoint.x];
NSString *strcy = [NSString stringWithFormat:@"%f",Endpoint.y];

这里 touch 是 UITouch 的对象。

关于不透明度,我无话可说。

于 2013-05-17T12:53:46.120 回答