2

スマートフォン(主にiPhone)用の画像処理アプリケーションを構築する必要があります。操作は次のとおりです。

  • 画像フィルタリング
  • 複合幾何学的変換
  • 地域の成長

また、ユーザーは画像の一部を指定(タッチ)する必要があります。これらの部分は、アプリの入力として機能します。例:顔の目と唇。このアプリのデスクトップバージョンを作成しました。処理部分は非常に重く、BufferedImageクラスを幅広く使用しました。

このアプリの作成にはCodeNameOneを使用する必要がありますか?そうでない場合、どのような代替案を提案しますか?

次の要因を考慮してください。

  • パフォーマンス
  • コードの書きやすさ(画像処理用)
4

1 に答える 1

2

私はディスカッションフォーラムでこれに答えましたが、重複した投稿に対しては価値のある質問だと思います。

一般に、ほとんどのプラットフォームでは、iOSとほぼ間違いなくWindows Phoneを除いて、パフォーマンスの点で問題がないはずです。

Codename Oneは一般的なユースケース向けに最適化されています。iOSではJITが許可されていないため、配列境界チェックの削除などの最適化を行うのが非常に難しいため、デスクトップでJavaほど高速になることはありません。したがって、配列へのすべてのアクセスには、画像処理にかなりの費用がかかる可能性のあるブランチチェックが含まれます。

それに加えて、基本的なARGB以外の画像処理APIがなく、「画像」を取得できるという事実に加えて、それは効率的でも簡単でもありません。

問題は、これが非常に特殊なフィールドであるということです。この種のコードで役立つ解決策が見つかるかどうかは非常に疑わしいです。したがって、AFAIKの唯一のアプローチは、実際の画像処理を大幅に強化するためのネイティブコードを作成することです。

これは、Codename OneNativeInterfaceで、ネイティブコードで重要なコードを呼び出し、を使用cn1libしてライブラリとしてラップできるAPIを使用して行うことができます。そうすれば、コードのその部分のネイティブパフォーマンスを得ることができますが、これはコードのクリティカルセクションでのみ意味があります。ネイティブコードをたくさん書くと、Codename Oneの利点が失われ始め、ネイティブに移行したほうがよいでしょう。

于 2012-10-09T12:38:13.417 に答える