对于我的新任务,我想使用一些可以提供“色调分离效果” 的库。我发现很多图书馆,比如 Aviary SDK和 jhlabs ,是的,这些很容易使用,但是这些使代码变得更重。所以我一直在寻找可以完成类似任务的 Android API 本身。经过大量的 RnD,我终于找到了一个节省时间的类 EffectsFactory,它提供了我想要的功能。我也在我的作业中应用了它。但不好的是,它是在 API 级别 14 中添加的,而且我的应用程序应该至少与 API 级别 8 兼容。
所以,我的问题是,
低版本可以使用 EffectsFactory 类吗?如果是,那么如何?
或者,如果没有,那么我们在 Android SDK 中是否有类似 effectfactory 的 API?
请避免引用任何库或 NDK 的开放 cv 库。
最佳答案
不,没有一个 Android API 可以对 API 14 以下的图像进行分色。即使在 API 14 以上,EffectsFactory
也可能无法工作,正如它在 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 (其中大部分是糖)。在您看来,如果无法使用第 3 方库,我会毫不犹豫地编写自己的库。
编辑:如果您碰巧对您的应用从相机拍摄的图像进行分色,那么还有 Camera.Parameters.setColorEffect() , 但正如 the documentation 中所说,并非所有设备都支持此功能:
For example, the application should call
getSupportedColorEffects()
before callingsetColorEffect(String)
.
关于android - 低版本可以用EffectFactory类吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20796405/