我想对 Android 设备屏幕上显示的任何内容应用某种图像过滤器。图像过滤器的最简单示例可能是在帧缓冲区显示在屏幕上之前应用到帧缓冲区的棕褐色过滤器。只是为了确保,我希望这种效果系统范围广泛,而不仅仅是在我的应用程序中。
问问题
472 次
1 回答
0
要在系统范围内制作效果,您需要修改 SurfaceFlinger 以应用过滤器。
在 Android 5.0“Lollipop”中,您可以看到代码的原型实现,该代码修改输出以提高色盲人群的对比度。请参阅Daltonizer代码以及它是如何doDisplayComposition()
与SurfaceFlinger.cpp挂钩的。请注意,这会在表面合成期间应用效果,因此会禁用 Hardware Composer。
无法从应用程序在整个系统范围内执行此操作。如果有,您可能会对系统造成各种破坏。
于 2014-11-12T17:01:16.337 回答