iphone - CodeNameOne 对于图像处理应用程序的适用性

标签 iphone image-processing smartphone codenameone

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

  • 图像过滤
  • 复合几何变换
  • 区域增长

此外,用户需要指定(触摸)图像的某些部分。这些部分将作为应用程序的输入。例如:脸上的眼睛和嘴唇。 我们已经构建了该应用程序的桌面版本。处理部分相当繁重,我们广泛使用了 BufferedImage 类。

我们应该使用 CodeNameOne 来构建此应用吗?如果没有,那么您建议什么替代方案?

请考虑以下因素:

  • 性能
  • 易于编写代码(用于图像处理)

最佳答案

我在我们的讨论论坛中对此给出了答案,但我认为对于重复的帖子来说这是一个值得提出的问题:

通常,对于大多数平台,除了 iOS 和 Windows Phone 之外,您的性能应该都不错。

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

此外,除了基本的 ARGB 之外,我们没有任何图像处理 API,您可以获得“图片”,但它不会高效或容易。

问题是这是一个非常具体的领域,我非常怀疑您是否会找到任何可以帮助您处理此类代码的解决方案。因此,据我所知,您唯一的方法是构建 native 代码来完成实际的图像处理繁重工作。

您可以使用 Codename One 的 NativeInterface API 来完成此操作,该 API 允许您调用 native 代码中的关键代码并使用 cn1lib 将它们包装为库。然后,您将能够获得该部分代码的 native 性能,但这仅对代码中的关键部分有意义。如果您编写了大量 native 代码,Codename One 的优势就会开始消失,您不妨转向 native 代码。

关于iphone - CodeNameOne 对于图像处理应用程序的适用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12779599/

相关文章:

c# - 将智能手机应用程序部署到 Windows XP/7

ios - 我如何告诉我的 ViewController 一个 View 被触摸了?

iphone - iPhone 原生应用的测试驱动设计

java - 矩阵与浮点opencv android的乘法

c#-4.0 - 如何将 Emgu.Cv.Image<Gray,byte> 转换为 System.Image

c - YUV 422 , YUV 420 , YUV 444

ios - 如何用swift制作单选按钮?

iphone - NSXMLParser工作正常,但是如何实现UIActivityIndi​​cator来显示网络事件?

java - 保存笔记等用户输入的方法(Android Studio/Java编程)?

css - 从 CSS 媒体查询开始