繁体   English   中英

适用于Android和Java的图像处理库

[英]Image processing library for Android and Java

我目前正在开发一个小项目,该项目将从URL加载图像,调整大小并使用指定的调色板将其颜色深度更改为仅16种颜色。 对我来说主要的问题是,我想要一个程序,我可以在Android设备和台式计算机上使用它。 你知道一个适用于两个系统的好的图像处理库吗?

提前致谢。

有几种工具:

这个页面的答案截止日期为2014年2月。我正在寻找一个免费的Android图像处理库 ,我在这里找到了斯坦福的讲义: http//www.stanford.edu/class/ee368/Android/的index.html

进一步调查,我发现他们在课程材料中使用OpenCV 它有一个Java接口(以及许多其他语言),但该库是用C ++本地编写的。 他们说:

除了谷歌,雅虎,微软,英特尔,IBM,索尼,本田,丰田等知名公司,还有许多创业公司,如Applied Minds,VideoSurf和Zeitera,它们广泛使用OpenCV。

我很兴奋(!)找到了这个,期待回家然后放手一搏。

Android NDK允许您使用不需要java.awt或任何Android类的现有C / C ++库。 例如,您可以轻松地将libpng编译为Android的共享库,然后编写JNI接口以将图像从Java层传递到png库。 同样,您也可以将libpng编译为台式计算机的共享库,并从那里使用它。

我最近写了一篇关于如何为Android编译开源库的教程 如果您浏览Android源代码,您会发现一些通过jni使用skia图形库的类。 我之前没有使用过skia,但是由于Android在其基础框架中有skia,因此在app / desktop程序中使用它不应该太困难。

编写跨平台程序一直是移动开发人员社区中一个积极关注的领域,而像libgdx这样的引擎已经非常擅长。 所以你所尝试的绝对是可能的。

辛酸,

我不认为存在可以满足您需求的库,其原因是在非移动平台上,您将在Java中使用的每个图形操作都将在某种程度上使用Java2D渲染管道。 在Android上,这不存在。

Android为图像处理提供了自己的图形管道,实际上简化了标准Java中更复杂的许多事情。

总而言之,看起来你发现了一个库(JJIL)作为这些差异之上的抽象层,在这种情况下我会有点担心性能并在你自己的代码中做一些测试来看看它是怎么回事执行与平台方法相比。 例如,我从JJIL看到了这句话:

允许图像从Android位图转换为JJIL RgbImages

当我查看RgbImages的源代码时 ,看起来图像数据被转换并存储在内部数组中; 所有这些抽象层都会花费你的CPU时间和内存,特别是当移动设备上的图像由于更高分辨率的摄像头和高带宽连接而变大时。

这可能不是一个大问题,但同样,您可能想要进行一些分析/测试/性能比较。

任何纯Java库都应该适用于两个平台。 谷歌搜索“Java图像处理库”产生了几个结果。 尝试找到最轻的lib,它可以满足您的需求,因为内存和CPU在移动设备上是有限的。

巴里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM