2

私はAndroidでのプログラミングにしばらくopencvを使用していましたが、Gimpライブラリの方がはるかに強力であることがわかりました。Gimpを学ぶための出発点はどこにありますか?また、Gimpプラグインの背後にある基本的な概念についても知りたいです。以前は、opencvでCAPIを使用していました。どうすればAndroid用のコードを書くことができますか?また、Gimpの使用を開始するには、Windowsにどのパッケージをインストールする必要がありますか?

4

2 に答える 2

2

GIMPダウにはいくつかの画像操作を実行するスタンドアロンライブラリがいくつかありますが、ほとんどの画像操作はGIMPのコアプログラムまたはGIMPのプラグインのいずれかによって実行されます。どちらのアプローチでも、プログラム全体をインストールして実行する必要があります(ただし、必ずしもディスプレイを使用する必要はありません)。

Andoridのプログラミングについては何も知りません。また、通常のネイティブコードをCにインストールして、Androidアプリから呼び出す方法もわかりません。これに精通している場合は、試してみる機会があるかもしれません。

ただし、GIMP自体は、glib、gtk +、cairo、pango、geglを含むがこれらに限定されないライブラリの広範なエコシステムに依存しており、これらのそれぞれに他の前提条件がある場合があります。Windowsには、これらのさまざまなライブラリのライブラリとヘッダーファイルを自動的にインストールするための動作するパッケージマネージャーがないため、それぞれのコードはマルチプラットフォームであり、Windowsや他のOSで実行できますが、これらをWindowsでネイティブに操作することは非常に困難です。非常に難しいので、GIMP for Windowsを自分で構築する人は、Linux環境でGIMPforWindowsをクロスコンパイルします。

裸のAndroid環境だけでなく、AndroidのLinuxカーネルの周りでGNUエコシステムを使用している場合、これらすべてのライブラリをAndroidで動作させることは、おそらく難しいことではありません(Androidについては、それが可能かどうかさえわかりません) 。

全体として、それはあなたのためであり、多くの研究を必要とします。

GIMPのライブラリの1つであるGEGL(Generic Graphics Library)は、前提条件がはるかに少なく、通常のライブラリとして使用できます。おそらく、glibとBablだけを前提条件としてビルドできると思います。これは、現在のGIMPコアを置き換え、ほとんどの既存のプラグインの操作を再実装するライブラリです。したがって、これで十分な場合があります。
AndroidシステムからGEGLを実行して使用できるようにするには、それをWorldと共有します。これは、itelsefでは、Google SummerofCodeプロジェクトに相当するプロジェクトになります。(それでも、他のアプリケーションからライブラリとして使用するためにGIMPコードをそこに入れるよりも約1桁簡単です)。

最後に、GIMPのエフェクトをいくつか必要な場合、エフェクトがGIMPのプラグインとして実装されている場合、プラグインのコードは非常に単純です。したがって、Android内でGIMP環境全体を取得することは困難ですが、GIMPのソースツリーから実際にピクセル操作を実行する関数をコピーして、アプリ内のjavaメソッドで機能するように変換することは難しくありません。この場合、ライセンスに準拠することを忘れないでください。GIMPのプラグインコードはGPLv3の下にあります。(GEGLライブラリはLGPLのみです)

つまり、いいえ、AndroidアプリのネイティブコードとしてGIMPの「ライブラリ」を使用することはできません。OpenCVを使用できる場合は、代わりにGEGLを使用できる可能性が高くなります。特定のプラグインのアルゴリズムをオーティングしてアプリ内のピクセルを操作するだけの方が簡単です。

ただし、アプリケーションで画像処理をインターネットベースのサーバーに委任できる場合は、画像を受信するようにHTTPアプリケーションを設定し、GIMPを使用して画像を処理し、ストリーミングするのは簡単です。

(したがって、リアルタイムでエフェクトを適用することはできませんが、たとえば、写真を撮り、メニューから一連のエフェクトを選択し、それをサーバーに送信して処理することはできます)

于 2011-05-05T02:47:09.430 に答える
1

GIMPは、ブラシをロードするときにかなりのメモリを使用します。役に立たないプラグインをすべて削除し、ソースからビルドする場合。それを機能させることができるかもしれませんが、リンクされたすべてのライブラリを実行可能ファイルに直接ビルドする必要があります。

言い換えると; リンクされたライブラリを静的ビルドとしてコードに直接ビルドします。このようにして、それらのリンクされたライブラリの1つが別のリンクされたライブラリを呼び出さない限り、物事は適切に機能する可能性があります。

ライブラリ自体をOSで動作させることで、それらを使用する追加のプログラムの機会が提供される場合があります。さらに、GTK +(GIMPツールキット)、GIMPのインターフェースもかなり肥大化していて醜いです。

他のすべてが失敗した場合は、その場で探している機能(レベル、カーブ、クローンツール、覆い焼きと焼き込みなど)を備えた小さなプログラムに落ち着く必要があります。レイヤーも素晴らしいですが、編集大きなメガピクセル画像はかなり早くメモリを消費し始め、ほとんどのAndroidデバイスにはスワップパーティションがありません。

于 2012-06-11T16:12:08.260 に答える