我有用户可以擦除图像的应用程序。
因此,如果用户触摸图像的某些像素,这些像素的 alfa 应该会变低。
例如,如果我一次触摸图像的 (0,0) 像素,则 (0,0) 像素的不透明度应该变为 0.9。如果我触摸该像素 10 次,我不应该在点 (0,0) 看到图像。
实现它的最佳方法是什么?
我有用户可以擦除图像的应用程序。
因此,如果用户触摸图像的某些像素,这些像素的 alfa 应该会变低。
例如,如果我一次触摸图像的 (0,0) 像素,则 (0,0) 像素的不透明度应该变为 0.9。如果我触摸该像素 10 次,我不应该在点 (0,0) 看到图像。
实现它的最佳方法是什么?
如果您想要快速(如实时快速),则需要使用 OpenGL。最好的方法是创建一个 alpha 值的蒙版,该蒙版将使用自定义构建的着色器应用于原始图像。
更简单但速度较慢的方法是从 UIImage 获取原始像素并在原始像素数组上应用 alpha 值,然后将其转回 UIImage(这是一个很好的示例)
这是您可以检测触摸值的 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 的对象。
关于不透明度,我无话可说。