PSファイル内のテクスチャの操作 | Java
PSドキュメントにテクスチャタイリングパターンを追加する
テクスチャタイリングパターンは、図形やテキストなどのオブジェクトの塗りつぶしや描画に使用される画像です。画像のサイズがオブジェクトのサイズより小さい場合は、必要な領域をすべて覆うためにX方向とY方向に繰り返し配置されます。
グラフィックオブジェクト内で画像を繰り返す処理はタイリングと呼ばれます。 PsDocumentでペイントやストロークを設定するには、ペイントの場合はjava.awt.Paintクラスのオブジェクト、ストロークの場合はjava.awt.Strokeクラスのオブジェクトをそれぞれのメソッドに渡す必要があります。
Aspose.Page for Java ライブラリは、Java プラットフォームで提供される java.awt.Paint を実装したすべての重要なクラスを処理します。これらのクラスは、java.awt.Color、java.awt.TexturePaint、java.awt.LinearGradientPaint、および java.awt.RadialGradientPaint です。Java のストロークの色は、java.awt.Stroke オブジェクトのストロークのプロパティとは別に割り当てられ、java.awt.Paint を再度使用します。そのため、Aspose.Page for Java ライブラリは、線の描画や図形やテキストのアウトラインにも、ペイントの実装をすべて使用できます。
Aspose.Page for Java ライブラリでテクスチャ パターンを使用してグラフィック オブジェクトを ペイント するには、java.awt.TexturePaint を setPaint() に渡すか、java.awt.Paint をパラメーターとして受け入れる fillText() または fillAndStrokeText() メソッドのいずれかに渡すだけで十分です。
Aspose.Page for Java ライブラリでグラフィック オブジェクトをテクスチャ パターンで アウトライン するには、setPaint() または、ストローク ペイントをパラメーターとして受け入れる outlineText() や fillAndStrokeText() メソッドのいずれかに java.awt.TexturePaint オブジェクトを渡す必要があります。
以下の例では、図形とテキストを塗りつぶし、テクスチャ タイリング パターンでテキストのアウトラインを作成する方法を示します。
例におけるテクスチャ パターンと PsDocument の操作手順の説明:
- 結果の PS ファイルの出力ストリームを作成します。
- デフォルトのオプションで PsSaveOptions オブジェクトを作成します。
- 作成済みの出力ストリームと保存オプションを使用して、1 ページの PsDocument を作成します。
- 新しいグラフィックス状態を作成し、必要な位置に移動します。
- 画像ファイルから java.awt.image.BufferedImage を作成します。
- 画像から java.awt.TexturePaint を作成します。
- テクスチャ ブラシに必要な変換を設定します。
- PsDocument の現在のグラフィックス状態におけるテクスチャ ペイントを現在のペイントとして設定します。
- 四角形のパスを作成します。
- 四角形をテクスチャ ペイントで塗りつぶします。
- 現在のペイントを将来使用するためにローカル変数として保存します。
- 現在のペイントを赤色に設定します。
- ストロークを 2 ポイント幅の java.awt.BasicStroke に設定します。
- 現在のストロークで四角形のアウトラインを描画します。
- 現在のグラフィック状態から上位レベルのグラフィック状態へ戻ります。
- システム フォントを作成します。
- テキストを塗りつぶし、ストローク(アウトライン)します。塗りつぶしにはテクスチャペイントを使用し、ストロークには黒のペンを使用します。
- テクスチャペイントと新しい java.awt.BasicStroke を使用して、他の位置のテキストのアウトラインを描画します。
- ページを閉じます。
- ドキュメントを保存します。
1//Create an output stream for PostScript document
2FileOutputStream outPsStream = new FileOutputStream(dataDir + "AddTextureTilingPattern_outPS.ps");
3//Create save options with A4 size
4PsSaveOptions options = new PsSaveOptions();
5
6//Create new PS Document with the page opened
7PsDocument document = new PsDocument(outPsStream, options, false);
8
9document.writeGraphicsSave();
10document.translate(200, 100);
11
12//Create a BufferedImage object from image file
13BufferedImage image = ImageIO.read(new File(dataDir + "TestTexture.bmp"));
14
15//Create image area doubled in width
16Rectangle2D.Float imageArea = new Rectangle2D.Float(0, 0, image.getWidth() * 2, image.getHeight());
17//Create texture brush from the image
18TexturePaint paint = new TexturePaint(image, imageArea);
19
20//Create rectangle
21Rectangle2D.Float shape = new Rectangle2D.Float(0, 0, 200, 100);
22
23//Set this texture brush as current paint
24document.setPaint(paint);
25//Fill rectangle
26document.fill(shape);
27
28
29document.setPaint(Color.RED);
30document.setStroke(new BasicStroke(2));
31document.draw(shape);
32
33document.writeGraphicsRestore();
34
35//Fill the text with the texture pattern
36Font font = new Font("Arial", Font.BOLD, 96);
37document.fillAndStrokeText("ABC", font, 200, 300, paint, Color.BLACK, new BasicStroke(2));
38
39//Outline the text with the texture pattern
40document.outlineText("ABC", font, 200, 400, paint, new BasicStroke(5));
41
42//Close current page
43document.closePage();
44//Save the document
45document.save();
.NET の PS ドキュメント内のテクスチャの操作を参照してください。
このコードを実行した結果は次のように表示されます。
サンプルとデータファイルは以下からダウンロードできます。 GitHub.