Iphone CodeNameOne在图像处理应用中的适用性

Iphone CodeNameOne在图像处理应用中的适用性,iphone,image-processing,smartphone,codenameone,Iphone,Image Processing,Smartphone,Codenameone,我们需要为智能手机(主要是iPhone)构建一个图像处理应用程序。这些行动包括: 图像滤波 复合几何变换 区域增长 此外,用户需要指定(触摸)图像的某些部分。这些部分将作为应用程序的输入。例如:脸上的眼睛和嘴唇。 我们已经构建了此应用程序的桌面版本。处理部分相当繁重,我们广泛使用BuffereImage类 我们是否应该使用CodeNameOne来构建此应用程序?如果没有,你有什么建议 请考虑以下因素: 演出 易于编写代码(用于图像处理) 我在我们的讨论论坛上给出了答案,但我认为这是一个值得

我们需要为智能手机(主要是iPhone)构建一个图像处理应用程序。这些行动包括:

  • 图像滤波
  • 复合几何变换
  • 区域增长
此外,用户需要指定(触摸)图像的某些部分。这些部分将作为应用程序的输入。例如:脸上的眼睛和嘴唇。 我们已经构建了此应用程序的桌面版本。处理部分相当繁重,我们广泛使用BuffereImage类

我们是否应该使用CodeNameOne来构建此应用程序?如果没有,你有什么建议

请考虑以下因素:

  • 演出
  • 易于编写代码(用于图像处理)

我在我们的讨论论坛上给出了答案,但我认为这是一个值得重复发布的问题:

一般来说,除了iOS和Windows Phone之外,大多数平台的性能都应该良好

Codename One针对常见用例进行了优化,因为iOS不支持JIT,它在桌面上的速度永远不会像Java一样快,因为很难进行一些优化,例如数组绑定检查消除。因此,对数组的每次访问都将包含一个分支检查,这对于图像处理来说可能非常昂贵

此外,除了基本的ARGB之外,我们没有任何图像处理API,您可以获得“图片”,这将不是一件高效或简单的事情

问题是,这是一个非常特殊的领域,我非常怀疑您是否能找到任何解决方案来帮助您编写此类代码。因此,AFAIK的唯一方法是构建本机代码来完成实际的图像处理任务

您可以通过使用
NativeInterface
API使用Codename One实现这一点,该API允许您调用本机代码中的关键代码,并使用
cn1lib
将它们包装为库。然后,您将能够获得该部分代码的本机性能,但这只适用于代码中的关键部分。如果您编写了大量本机代码,那么Codename One的好处就开始消失,您不妨使用本机代码