2017-03-12 3 views
-2

私のjava-SWTプロジェクトでは、.svgという形式のアイコンがたくさんありますが、私は.svgのリソースからSWTイメージを作成する方法を知らないので、最初に.pngにImageMagickを使用します。 .svgファイルは引き続き「ソース」イメージです。アイコンを編集する場合は、.pngファイルではなく、常に.svgファイルを編集します。ビルドの一部としてリソースを生成するにはどうすればいいですか?

(あなたはどのように私は感謝される.svg資源からSWTイメージを作成するために私に言うことができるが、それは実際の問題ではないなら。)

は今、私は手動でSVGツーPNG変換を開始しています:.svgファイルのいずれかを変更するたびに、ImageMagickを繰り返し呼び出すシェルスクリプトを実行して、すべてを.pngに変換し、正しいリソースフォルダに保存してから、そのフォルダから出力フォルダにコピーします実行中のアプリケーションがそれらを見つけることができます。

私は二つのことを知っていただきたいと思います:

完全な変換は、私が mvn clean installを行う際に起こる、などというように、Mavenのビルドの一部としてSVGツーPNG変換を自動化する方法
  1. 私はmvn installを行う場合にのみ、実際に変更されている.svgファイルが変換されます(cleanなし。)

  2. は、どのように同じことをやってのIntelliJ IDEAを説得します。生成された.pngファイルは直接行けば、私は全然気にしない

(大部分は、私はちょうど達人で悩まずにIDEAで「ファイル名を指定して実行をビルドそして、」ヒットできるようにしたい。ので)ソースフォルダツリーの下にあるresourcesディレクトリの代わりに、プロジェクトの出力フォルダツリーのresourcesディレクトリに移動します。それは実際には "コピーリソース"のステップを節約するので、良いでしょう。

この質問は本質的にカスタムコンパイルに関するものです。.svgファイルはソースファイル、.pngファイルはバイナリ出力ファイルと考えることができ、ImageMagickはコンパイラと考えることができます。これらのツールにはデフォルトでは知識がないカスタムコンパイラの "make"を行うために、mavenとb)intelliJ IDEAをどのように使用するかという問題として、この質問を再現することができます。

答えて

1
  • 、.SVGファイルから生成された.pngのリソースを持つjarファイルを、生成したサブプロジェクトをポンポンモジュールを作成します。(src/main/svg/...多分。)
  • 次に、あなたの使用しているライブラリJARに依存関係を追加瓶。
  • ClassLoaderを使用してリソースを取得します。

これは不必要に控えめですが、明確な生産ラインを形成します。


1つのオプションは、maven execプラグインです。

完全に他の方法は、java batikライブラリをsvgに使用することです。

+0

は、私はあなたがになっているかを理解だと思うが、まだそれを達成するためにどのように私には全く不明です。つまり、私のプロジェクトはいくつかのリソース(jarプロジェクト)に依存し、.svgファイルはresources-jarプロジェクトのソースツリーにあるため、.svgファイルを変更するとそのプロジェクトが再構築されます。ファイン。しかし、それでも.svgを.png-in-a-jarに変換するにはどうすればリソースジャープロジェクトを構築できるのでしょうか? –

関連する問題