对于我的新作业,我想使用一些可以提供 “Posterize效果”的库 。我找到了许多类似Aviary SDK和jhlabs的库,是的,这些都很容易使用,但这些使代码更重。所以我一直在寻找Android的API本身,它可以完成类似的任务。经过大量的RnD,我终于找到了一个节省时间的 EffectsFactory ,它提供了我想要的相同功能。我也在我的作业中应用了它。但它在API级别14中添加了一件坏事,而我的应用程序应至少与API级别8兼容。
所以,我的问题是,
我可以将EffectFactory类用于较低版本吗?如果是,那么如何?
或者,如果不是,那么Android SDK中是否有任何类似于effectfactory的API?
请避免引用任何库或NDK的open cv库。
答案 0 :(得分:3)
不,没有Android API可以在API 14下面对图像进行分色。即使是上面的API 14 EffectsFactory
也可能无效,正如Android documentation中所述:
某些效果可能并非在所有平台上都可用,因此在创建特定效果之前,应用程序应通过调用
isEffectSupported(String)
确认此平台支持该效果。
但是,您可以轻松自己制作轻量级解决方案。海报化是一个简单的过程。例如,JHlabs' posterize filter后面的代码是less than 50 lines(其中大部分都是糖)。在你的鞋子里,如果使用第三方图书馆是不可能的,我会毫不犹豫地写自己的。
修改:如果您正在将应用从相机中拍摄的图像分色,还有Camera.Parameters.setColorEffect(),但同样在所有设备上都不支持此功能,因为它在{ {3}}:
例如,应用程序应在调用
getSupportedColorEffects()
之前调用setColorEffect(String)
。