1

http://sourceforge.net/projects/jlibeps/ライブラリを使用しています。

すでに描画されている既存のGraphics2Dオブジェクトがあり、Graphics2Dオブジェクトから新しいEpsGraphics2Dオブジェクトを作成したいと考えています。

これは可能ですか、またはこれを達成する方法についての提案はありますか?

jlibepsの作成者がこの例を提供しましたが、paint(g)この行でこれを実現する方法を理解できていません。

//If you want to paint a Graphics2D in an EPS file, you can do that:
FileOutputStream finalImage = new FileOutputStream(file);
EpsGraphics2D g = new EpsGraphics2D("Title", finalImage, 0, 0, 500, 500);
paint(g);
g.flush();
g.close();
finalImage.close();
4

1 に答える 1

1

Graphics2Dオブジェクトを持っていると、あるメディアに描画できますが、そのメディアに現在レンダリングされているものを読み取ることはできず、現在のコンテンツを描画するために使用された命令を読み取ることはできないため、一般的には役に立ちません。

代わりに、画面レンダリング用EpsGraphics2Dのオブジェクトとまったく同じ方法で、オブジェクトをパイプラインにフィードする必要があります。Graphics2D通常、コンポーネントのコンテンツを描画する必要があります。これは、そのpaintメソッドを呼び出すことで実行できます。したがってpaint、構築したepsグラフィックオブジェクトでそのメソッドを呼び出すことにより、すべてのペイント命令をepsファイルに移動させることができます。それがpaint(g)マニュアルの行が指しているものです。

別の言い方Graphics2Dをすれば、魔法のようにオブジェクトに変える既存のオブジェクトは必要ありませんEpsGraphics2DGraphics2D代わりに、オブジェクトに役立つ何かを実行する、つまりオブジェクトにコンテンツをレンダリングする一連のメソッド呼び出しが必要です。次に、そのコードを再利用して、EpsGraphics2Dオブジェクト(オブジェクトの特殊なケースでありGraphics2D、したがってオブジェクトの特殊なケースGraphics)をそのコードの最も外側の呼び出しに渡すことにより、epsファイルを生成できます。

于 2012-10-12T12:30:47.663 に答える