PSファイル内の画像の操作 | Java

PSドキュメントに画像を追加

Aspose.Page for Javaライブラリは、PSドキュメントに画像を追加するための2つの方法を提供しています。

PostScriptは透明度をサポートしていないため、半透明画像は完全に透明なピクセルと完全に不透明なピクセルのセットとしてレンダリングできます。このような画像はマスクと呼ばれます。

PSドキュメント内の半透明画像をマスクとして表示し、画像の透明度をより正確に反映させるには、画像の確認と前処理が必要です。この確認と前処理には時間がかかります。したがって、画像が完全に不透明であることが確実な場合は、実行時間を節約できる最初の方法を使用することをお勧めします。

2つ目の方法は、画像が完全に不透明か、完全に透明か、あるいは半透明かを認識します。完全に不透明な場合は、最初の方法で不透明画像として追加されます。 完全に透明な場合はドキュメントにはまったく追加されず、半透明画像の場合はPostScript画像マスクとして追加されます。

以下の例では、完全に不透明な画像を追加する方法を示します。透明画像の追加方法については、「透明部分の操作」の記事で説明します。

この例では、Aspose.Page for Javaライブラリを使用して新しい PsDocumentに画像を追加するために、以下の手順を実行します。

  1. 結果のPSファイル用の出力ストリームを作成します。
  2. デフォルトオプションで PsSaveOptions オブジェクトを作成します。
  3. 作成済みの出力ストリームと保存オプションを使用して、1 ページの PsDocument を作成します。
  4. 新しいグラフィックス状態を作成します。
  5. 画像ファイルから java.awt.image.BufferedImage を作成します。
  6. 画像に必要な変換を作成します。
  7. 画像を PsDocument オブジェクトに追加します。
  8. 現在のグラフィックス状態から上位レベルのグラフィックス状態に移行します。
  9. ページを閉じます。
  10. ドキュメントを保存します。
 1//Create an output stream for PostScript document
 2FileOutputStream outPsStream = new FileOutputStream(dataDir + "AddImage_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
 9
10document.writeGraphicsSave();
11document.translate(100, 100);
12
13//Create a BufferedImage object from image file
14BufferedImage image = ImageIO.read(new File(dataDir + "TestImage Format24bppRgb.jpg"));
15
16//Create image transform
17AffineTransform transform = new AffineTransform();
18transform.translate(35, 300);
19transform.scale(3, 3);
20transform.rotate(-45);
21
22//Add image to document
23document.drawImage(image, transform, null);
24
25document.writeGraphicsRestore();
26
27//Close current page
28document.closePage();
29//Save the document
30document.save();

.NET の PS ドキュメント内の画像の操作を参照してください。

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

Add Image

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

Have any questions about Aspose.Page?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.