我们需要为智能手机(主要是iPhone)构建图像处理应用程序。这些行动包括:
此外,用户需要指定(触摸)图像的某些部分。这些部分将作为应用程序的输入。例如:脸上的眼睛和嘴唇。 我们已经构建了这个应用程序的桌面版本。处理部分非常繁重,我们广泛使用BufferedImage类。
我们应该使用 CodeNameOne 来构建此应用吗?如果没有,那么你建议用什么替代品?
请考虑以下因素:
答案 0 :(得分:2)
我在讨论论坛上给出了答案,但我认为对于重复的帖子来说这是一个值得回答的问题:
一般来说,对于大多数平台而言,除了iOS和iPad之外,你应该在性能方面做得很好。可以说是Windows Phone。
Codename One针对常见用例进行了优化,因为iOS不允许使用JIT,因为它在桌面上永远不会像Java一样快,因为它很难做一些优化,例如:数组绑定检查消除。因此,对数组的每次访问都将包含一个分支检查,这对于图像处理来说非常昂贵。
除此之外,除了基本的ARGB之外我们没有任何图像处理API,你可以得到“图片”,它只是效率不高或不容易。
问题在于这是一个非常具体的领域,我非常怀疑你会找到任何可以帮助你解决这类代码的解决方案。因此,您唯一的方法AFAIK是构建本机代码来进行实际图像处理繁重的工作。
您可以使用NativeInterface
API通过Codename One执行此操作,该API允许您在本机代码中调用关键代码并使用cn1lib
将它们包装为库。然后,您将能够获得该部分代码的本机性能,但这只对代码中的关键部分有意义。如果你编写了很多原生代码,那么Codename One的好处就会开始消散,你也可以去原生代码。