PSファイル内のテクスチャの操作 | Java

PSドキュメントにテクスチャタイリングパターンを追加する

テクスチャタイリングパターンは、図形やテキストなどのオブジェクトの塗りつぶしや描画に使用される画像です。画像のサイズがオブジェクトのサイズより小さい場合は、必要な領域をすべて覆うためにX方向とY方向に繰り返し配置されます。

グラフィックオブジェクト内で画像を繰り返す処理はタイリングと呼ばれます。 PsDocumentでペイントやストロークを設定するには、ペイントの場合はjava.awt.Paintクラスのオブジェクト、ストロークの場合はjava.awt.Strokeクラスのオブジェクトをそれぞれのメソッドに渡す必要があります。

Aspose.Page for Java ライブラリは、Java プラットフォームで提供される java.awt.Paint を実装したすべての重要なクラスを処理します。これらのクラスは、java.awt.Colorjava.awt.TexturePaintjava.awt.LinearGradientPaint、および java.awt.RadialGradientPaint です。Java のストロークの色は、java.awt.Stroke オブジェクトのストロークのプロパティとは別に割り当てられ、java.awt.Paint を再度使用します。そのため、Aspose.Page for Java ライブラリは、線の描画や図形やテキストのアウトラインにも、ペイントの実装をすべて使用できます。

Aspose.Page for Java ライブラリでテクスチャ パターンを使用してグラフィック オブジェクトを ペイント するには、java.awt.TexturePaintsetPaint() に渡すか、java.awt.Paint をパラメーターとして受け入れる fillText() または fillAndStrokeText() メソッドのいずれかに渡すだけで十分です。

Aspose.Page for Java ライブラリでグラフィック オブジェクトをテクスチャ パターンで アウトライン するには、setPaint() または、ストローク ペイントをパラメーターとして受け入れる outlineText()fillAndStrokeText() メソッドのいずれかに java.awt.TexturePaint オブジェクトを渡す必要があります。

以下の例では、図形とテキストを塗りつぶし、テクスチャ タイリング パターンでテキストのアウトラインを作成する方法を示します。

例におけるテクスチャ パターンと PsDocument の操作手順の説明:

  1. 結果の PS ファイルの出力ストリームを作成します。
  2. デフォルトのオプションで PsSaveOptions オブジェクトを作成します。
  3. 作成済みの出力ストリームと保存オプションを使用して、1 ページの PsDocument を作成します。
  4. 新しいグラフィックス状態を作成し、必要な位置に移動します。
  5. 画像ファイルから java.awt.image.BufferedImage を作成します。
  6. 画像から java.awt.TexturePaint を作成します。
  7. テクスチャ ブラシに必要な変換を設定します。
  8. PsDocument の現在のグラフィックス状態におけるテクスチャ ペイントを現在のペイントとして設定します。
  9. 四角形のパスを作成します。
  10. 四角形をテクスチャ ペイントで塗りつぶします。
  11. 現在のペイントを将来使用するためにローカル変数として保存します。
  12. 現在のペイントを赤色に設定します。
  13. ストロークを 2 ポイント幅の java.awt.BasicStroke に設定します。
  14. 現在のストロークで四角形のアウトラインを描画します。
  15. 現在のグラフィック状態から上位レベルのグラフィック状態へ戻ります。
  16. システム フォントを作成します。
  17. テキストを塗りつぶし、ストローク(アウトライン)します。塗りつぶしにはテクスチャペイントを使用し、ストロークには黒のペンを使用します。
  18. テクスチャペイントと新しい java.awt.BasicStroke を使用して、他の位置のテキストのアウトラインを描画します。
  19. ページを閉じます。
  20. ドキュメントを保存します。
 1  // Paint rectangle and text and outline text with tiled image (texture pattern) in PS document.
 2
 3  String outputFileName = "AddTextureTilingPattern_outPS.ps";
 4
 5  //Create save options with A4 size
 6  PsSaveOptions options = new PsSaveOptions();
 7
 8  // Create new 1-paged PS Document
 9  PsDocument document = new PsDocument(getOutputDir() + outputFileName, options, false);
10
11  document.writeGraphicsSave();
12  document.translate(200, 100);
13
14//Create a BufferedImage object from image file
15  BufferedImage image = ImageIO.read(new File(getDataDir() + "TestTexture.bmp"));
16  
17  //Create image area doubled in width
18  Rectangle2D.Float imageArea = new Rectangle2D.Float(0, 0, image.getWidth() * 2, image.getHeight());
19  //Create texture brush from the image
20  TexturePaint paint = new TexturePaint(image, imageArea);
21  
22  //Create rectangle
23  Rectangle2D.Float shape = new Rectangle2D.Float(0, 0, 200, 100);
24  
25  //Set this texture brush as current paint
26  document.setPaint(paint);
27  //Fill rectangle
28  document.fill(shape);
29  
30  
31  document.setPaint(Color.RED);
32  document.setStroke(new BasicStroke(2));
33  document.draw(shape);
34  
35  document.writeGraphicsRestore();
36  
37  //Fill the text with the texture pattern
38  Font font = new Font("Arial", Font.BOLD, 96);
39  document.fillAndStrokeText("ABC", font, 200, 300, paint, Color.BLACK, new BasicStroke(2));
40
41  //Outline the text with the texture pattern
42  document.outlineText("ABC", font, 200, 400, paint, new BasicStroke(5));
43
44  //Close current page
45  document.closePage();
46
47  //Save the document
48  document.save();

.NET の PS ドキュメント内のテクスチャの操作を参照してください。


このコードを実行した結果は次のように表示されます。

Add Texture Tiling Pattern

サンプルとデータファイルは以下からダウンロードできます。 GitHub.

Have any questions about Aspose.Page?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.