PS ファイルに画像を挿入する

PS ドキュメントの画像を操作するための C++ API ソリューション

 

PostScript ファイル内の画像の操作を開始する前に、この作業を容易にするいくつかの特性を理解しておく必要があります。いくつかの重要なポイントを次に示します。

  • PostScript は透明度をサポートしていないため、PS ドキュメントに追加された半透明の画像は 24 ビット/ピクセルの RGB 画像に変換され、不透明としてレンダリングされます。唯一の例外は、1 ピクセルあたり 1 ビットのイメージ マスクです。つまり、すべてのピクセルが完全に不透明または完全に透明であるイメージです。このような場合のために、Aspose.Page の PsDocument は、透明度しきい値パラメーター (TT) を備えた別のメソッド DrawTransparentImage() を提供します。このパラメータは、半透明のイメージを 1 ビット/ピクセルのイメージ マスクに変換するのに役立ちます。ピクセルのアルファ チャネルが TT 以上の場合、ピクセルは完全に透明になります。それ以外の場合は、完全に不透明になります。たとえば、TT が 255 の場合、完全に透明なピクセルのみが完全に透明になります。残りのピクセルは完全に不透明になります。
  • PostScript は、JPEG や LZW などのさまざまな画像圧縮技術をサポートしており、圧縮レベルは画像の品質やファイル サイズに影響を与える可能性があります。
  • PostScript ファイル内の画像のサイズを変更する場合、コンピュータは新しいピクセルの色を認識する必要があります。これを行うために、さまざまな技術 (補間法と呼ばれる) が使用されます。選択した方法は、特に画像を拡大または縮小する場合に、画像の見栄えに影響を与える可能性があります。したがって、最高の品質を得るには適切な方法を選択することが重要です。
  • PS 形式のファイルは、高解像度の画像や複数の画像を含めると非常に大きくなる可能性があります。これはファイル転送と処理時間に影響を与える可能性があるため、必要に応じて解像度を下げて画像データ サイズを最適化します。

PostScript ベースのワークフローで適切な画像統合と正確なレンダリングを確保するには、次の点に留意してください。しかし、何があっても、Aspose.Page は PS ファイルに画像を簡単に追加する機能を提供します。この API を使用すると、C++ を使用してさまざまな画像を追加できます。 PS ファイルの処理方法、特に PS ファイル内の画像の操作方法の詳細については、ドキュメントに従ってください。

PS ドキュメントに画像を追加するには、次のものが必要です。

  • Aspose.Page for C++ API は、機能が豊富で強力で使いやすいドキュメント操作および変換 C++ API です。

  • NuGet パッケージ マネージャーを開き、Aspose.Page.Cpp を検索してインストールします。パッケージ マネージャー コンソールから次のコマンドを使用することもできます。

Package Manager Console Command

    PM> Install-Package Aspose.Page.Cpp

PS ファイルに画像を追加する手順。

以下のコードは、PS ドキュメントを作成し、それに画像を追加し、画像に変換を適用して、指定された設定でドキュメントを保存します。さらにサンプルを参照するには、 Aspose.Page for C++ GitHub プロジェクト にアクセスしてください。 。

  1. 結果の PS ファイルの出力ストリームを作成します。
  2. デフォルトのオプションを使用して PsSaveOptions オブジェクトを作成します。必要に応じて背景色を変更します。
  3. 出力ストリーム、オプション、および false をパラメーターとして使用して、 PsDocument の新しいインスタンスを作成します。これにより、指定されたオプションを使用して新しい PostScript ドキュメントが初期化されます。
  4. 新しいグラフィックス状態を作成します。
  5. 画像ファイルから System.Drawing.Bitmap を作成します。
  6. 画像に必要な変換を作成します。
  7. 画像が不透明であることが確実な場合は、画像を完全に不透明な画像として PsDocument に追加します (AddImage() メソッドを使用)。画像が不透明であるかどうかわからない場合は、透明な画像として画像を追加します (AddTransparentImage() メソッドを使用)。不透明。
  8. 現在のグラフィックス状態を終了して、上位レベルのグラフィックス状態に戻ります。
  9. ClosePage() を呼び出して、現在のページが完了したことを示します。
  10. Save() メソッドを使用して変更を保存します。
PS に画像を追加する
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir_WorkingWithImages();
//Create output stream for PostScript document
{
System::SharedPtr<System::IO::Stream> outPsStream = System::MakeObject<System::IO::FileStream>(dataDir + u"AddImage_outPS.ps", System::IO::FileMode::Create);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_1({ outPsStream});
// ------------------------------------------
try
{
//Create save options with A4 size
System::SharedPtr<PsSaveOptions> options = System::MakeObject<PsSaveOptions>();
// Create new 1-paged PS Document
System::SharedPtr<PsDocument> document = System::MakeObject<PsDocument>(outPsStream, options, false);
document->WriteGraphicsSave();
document->Translate(100.0f, 100.0f);
//Create a Bitmap object from image file
{
System::SharedPtr<System::Drawing::Bitmap> image = System::MakeObject<System::Drawing::Bitmap>(dataDir + u"TestImage Format24bppRgb.jpg");
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_0({ image});
// ------------------------------------------
try
{
//Create image transform
System::SharedPtr<System::Drawing::Drawing2D::Matrix> transform = System::MakeObject<System::Drawing::Drawing2D::Matrix>();
transform->Translate(35.0f, 300.0f);
transform->Scale(3.0f, 3.0f);
transform->Rotate(-45.0f);
//Add image to document
document->DrawImage(image, transform, System::Drawing::Color::Empty);
}
catch(...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
document->WriteGraphicsRestore();
//Close current page
document->ClosePage();
//Save the document
document->Save();
}
catch(...)
{
__dispose_guard_1.SetCurrentException(std::current_exception());
}
}

PS PS ファイル形式とは

PS 形式は、ページ記述言語 (PDL) 形式の 1 つです。ページにグラフィック情報とテキスト情報を含めることができます。そのため、ほとんどの画像編集プログラムでこの形式がサポートされていました。 Postscript ファイル自体は、プリンターに対する一種の命令です。そのページから何をどのように印刷するかに関する情報が含まれています。