android - 低版本可以用EffectFactory类吗

标签 android image-processing

对于我的新任务,我想使用一些可以提供“色调分离效果” 的库。我发现很多图书馆,比如 Aviary SDKjhlabs ,是的,这些很容易使用,但是这些使代码变得更重。所以我一直在寻找可以完成类似任务的 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 calling setColorEffect(String).

关于android - 低版本可以用EffectFactory类吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20796405/

相关文章:

android - ProjectScopeServices gradle sync 问题中没有可用的工厂类型服务

android - 从内部 viewpager fragment 调用 Activity 方法

image-processing - 批量处理 SVG 到带有边框的 PNG

调整大小时的 Python 图像库图像分辨率

opencv - 寻找手的边界区域

android - 无法使用硬件键盘创建 Android 仿真

android - WakefulBroadcastReceiver Intent 仅在某些情况下不启动(奇怪)

android - 如何在 fragment 之间传递数据

c++ - 为什么霍夫变换检测到两条线而只有一条线

opencv - 如何在openCV中的图像上绘制不同的形状?