我的应用程序的背景是一个不透明的 UIImageView 。在某些情况下,我想以动画方式将其从全亮度调暗到大约 50%。目前我降低了 View 的 alpha 属性,这很好用。因为 View 后面没有任何东西,所以背景图像只是变暗了。
但是,我一直在使用 Core Animation Instrument 进行分析,当我这样做时,我看到 整个背景显示为混合。如果可能的话,我想避免这种情况。
在我看来,这在合成过程中是可以实现的。如果 View 是不透明的,则可以将其与黑色混合,而没有任何东西在后面透出。不需要混合,调整像素值即可。
我想知道这是否是 UIKit 的 GPU 合成支持的东西。虽然混合不是很好,但它可能比在 CPU 上更新图像要好得多,所以我认为 CPU 方法可能不是一个好的替代品。
Another question问了这个问题,并提出了一些想法,包括设置 Alpha。不过,没有人提出一种避免混合的机制。
Best Answer-推荐答案 strong>
这里的一个重要问题是您是否希望更改为使用深色背景进行动画处理。
没有动画
准备两个不同的背景图像,然后在它们之间简单地交换。 UIImage+imageEffects 库可以帮助生成变暗的图像,或者给你一些线索。
动画。
看看GPUImage - “基于 GPU 的图像和视频处理的开源 iOS 框架”。基于此,您可以将背景以较暗的方式渲染到场景中。
关于ios - 在不混合的情况下使不透明的 UIView 变暗,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/26345355/
|