2

アプリケーションで使用しているjai(Java Advance Imaging)があります。

jai セットアップを使用していると、画像処理が高速になったと感じますが、これらのセットアップをユーザーのコンピューターにインストールする必要があります。

また、jai の Jars を使用する場合、インストールは必要ありませんが、画像処理が少し遅くなります。

では、より高速で効率的な結果を得るには、どのようなアプローチを使用する必要がありますか?

注入時にユーザーの操作を必要としない、サイレント モードで jai セットアップをインストールする方法はありますか?

4

1 に答える 1

2

ご覧のパフォーマンスの違いは、ハードウェア アクセラレーションの有無にかかわらず、JAI を実行したことが原因だと思います。ハードウェア アクセラレーションを取得するには、次のことを行う必要があります。

  • または JAI を JRE にインストールします (その後、適切な JAR/DLL/SO ファイルが JRE にコピーされ、任意の Java アプリケーションで使用できるようになります)。
  • または、Java アプリケーションに JAR/DLL/SO ファイルを提供します。この場合、インストールは不要です。

2 番目のオプションを実装するには、次のことを行う必要があります。

  • アプリケーションにインクルード jai_codec-1.1.3.jar jai_core-1.1.3.jar mlibwrapper_jai.jar し、それらをクラスパスに追加します
  • libmlib_jai.so mlib_jai.dll mlib_jai_mmx.dll mlib_jai_util.dll アプリケーションの作業フォルダに置く

Lynux で実行する場合は、LD_LIBRARY_PATHSO ファイルの場所を Java に伝えるために、おそらく作業ディレクトリを拡張する必要があります。

#!/bin/bash

ROOT=`dirname $0`
cd $ROOT

# allow JINI to load libraries from working directory 
# (e.g. libmlib_jai.so - JAI hardware acceleration library) 
export LD_LIBRARY_PATH=$ROOT:$LD_LIBRARY_PATH

例:

アプリケーションの構造は次のようになります。

YourApplication
    lib
        jai_codec-1.1.3.jar 
        jai_core-1.1.3.jar 
        mlibwrapper_jai.jar        
        ...
    libmlib_jai.so 
    mlib_jai.dll 
    mlib_jai_mmx.dll 
    mlib_jai_util.dll
    ...
    run.cmd
    run.sh
    ...

したがって、JAR は CLASSPATH に含まれ、SO/DLL は作業フォルダー (run.cmd/.sh実行される場所) にあります。

于 2012-08-29T11:49:17.433 に答える