我有一个场景,有一个背景图像(一个亮着的房间),上面有一个黑色图像(阴影)。我需要能够在背景上移动手指并显示场景的某些部分,模拟黑暗房间中昏暗的光源。
我目前的方法是根据触摸的位置生成一个蒙版,然后将该蒙版应用于阴影图像。问题是我正在生成一个新的掩码,并在每次收到触摸事件时应用它。这是一个很大的图像(800x600),这会导致性能下降,并增加大量内存使用,最终导致游戏崩溃(我想我没有任何内存泄漏,但这不是授权的……无论如何,性能本身是不可接受的)。
有没有人能想到一种更好的方法(不涉及使用OpenGL ES --这在这个项目中不是一个选项)?
我正在尝试制作一个简单的图像橡皮擦工具,用户可以在绘制图像时进行擦除和恢复,就像下面的图像一样:
经过多次尝试和测试,我已经在UI端使用以下代码实现了足够的“擦除”功能:
// Drawing code - on user touch
// `currentPath` is a `UIBezierPath` property of the containing class.
guard let image = pickedImage else { return }
UIGraphicsBeginImageContextWithOptions(imageView.frame.size,