对于我的新任务,我想使用一些可以提供“Posterize效果”的库.我发现很多库像
Aviary SDK和
jhlabs,是的,这些都很容易使用,但这些使代码更重.所以我一直在寻找Android的API本身,它可以完成类似的任务.在经过大量的RnD之后,我终于找到了一个节省时间的EffectsFactory,它提供了我想要的相同功能.我也在我的作业中应用了它.但是在API级别14中添加了它的坏处,而我的应用程序应该至少与API级别8兼容.
所以,我的问题是,
我可以将EffectFactory类用于较低版本吗?如果是,那么如何?
或者,如果否,那么我们在Android SDK中是否有任何类似于effectfactory的API?
请避免引用任何库或NDK的open cv库.
解决方法
不,没有Android API可以在API 14下面对图像进行分色.即使是上面的API 14,效果也可能不起作用,如
Android documentation中所述:
Some effects may not be available on all platforms,so before creating a certain effect,the application should confirm that the effect is supported on this platform by calling
isEffectSupported(String)
.
但是,您可以轻松自己制作轻量级解决方案.海报化是一个简单的过程.例如,JHlabs’ posterize filter背后的代码是less than 50 lines(其中大多数是糖).在你的鞋子里,如果使用第三方图书馆是不可能的,我会毫不犹豫地写自己的.
编辑:如果您正在将应用程序从相机中拍摄的图像分色,那么还有Camera.Parameters.setColorEffect(),但是在所有设备上都不支持这一点,如the documentation所述:
For example,the application should call
getSupportedColorEffects()
before callingsetColorEffect(String)
.