Travailler avec des images dans PS | .NET

Ajouter une image dans un document PS

La bibliothèque Aspose.Page pour .NET propose deux méthodes pour ajouter des images au document PS :

Cela a été créé parce que PostScript ne prend pas en charge la transparence, mais les images translucides peuvent cependant être restituées sous la forme d’un ensemble de pixels entièrement transparents et entièrement opaques. De telles images sont appelées masques. Si nous voulons voir l’image translucide dans le document PS comme un masque, qui reflétera mieux la transparence de l’image, nous devrions effectuer une vérification et un prétraitement d’une telle image.

Le contrôle et le prétraitement nécessitent du temps. Par conséquent, si quelqu’un est sûr que l’image est totalement opaque, il est préférable d’utiliser la première méthode, car elle permet de gagner du temps d’exécution.

La deuxième méthode reconnaît si l’image est totalement opaque ou totalement transparente ou translucide. Si elle est entièrement opaque, elle est ajoutée comme image opaque dans la première méthode, si elle est entièrement transparente, elle n’est pas ajoutée du tout au document, si c’est l’image translucide, elle est ajoutée en tant que masque d’image PostScript.

Dans l’exemple ci-dessous, nous montrons comment ajouter une image entièrement opaque. L’ajout d’une image transparente sera démontré dans l’article « Travailler avec la transparence ».

Afin d’ajouter une image à un nouveau PsDocument avec la bibliothèque Aspose.Page pour .NET dans cet exemple, nous suivons les étapes suivantes :

  1. Créez un flux de sortie pour le fichier PS résultant.
  2. Créez un objet PsSaveOptions avec les options par défaut.
  3. Créez un PsDocument d’une page avec un flux de sortie déjà créé et enregistrez les options.
  4. Créez un nouvel état graphique.
  5. Créez System.Drawing.Bitmap à partir du fichier image.
  6. Créez la transformation nécessaire pour l’image.
  7. Ajoutez l’image à l’objet PsDocument.
  8. Quittez l’état graphique actuel pour passer au niveau supérieur.
  9. Fermez la page.
  10. Enregistrez le document.
 1//Create an output stream for PostScript document
 2using (Stream outPsStream = new FileStream(dataDir + "AddImage_outPS.ps", FileMode.Create))
 3{
 4    //Create save options with A4 size
 5    PsSaveOptions options = new PsSaveOptions();
 6
 7    // Create new 1-paged PS Document
 8    PsDocument document = new PsDocument(outPsStream, options, false);
 9
10    
11    document.WriteGraphicsSave();
12    document.Translate(100, 100);
13
14    //Create a Bitmap object from image file
15    using (Bitmap image = new Bitmap(dataDir + "TestImage Format24bppRgb.jpg"))
16    {
17        //Create image transform
18        Matrix transform = new Matrix();
19        transform.Translate(35, 300);
20        transform.Scale(3, 3);
21        transform.Rotate(-45);
22
23        //Add the image to document
24        document.DrawImage(image, transform, Color.Empty);
25    }
26
27    document.WriteGraphicsRestore();
28
29    //Close current page
30    document.ClosePage();
31
32    //Save the document
33    document.Save();
34}

Pour Linux, MacOS et autres systèmes d’exploitation non Windows, nous proposons d’utiliser notre package Nuget Aspose.Page.Drawing. Il utilise le backend Aspose.Drawing au lieu de la bibliothèque système System.Drawing.

Importez donc l’espace de noms Aspose.Page.Drawing au lieu de celui de System.Drawing. Dans l’extrait de code ci-dessus, Aspose.Page.Drawing.Bitmap sera utilisé à la place de System.Drawing.Bitmap, Aspose.Page.Drawing.Drawing2D.Matrix sera utilisé à la place de System.Drawing.Drawing2D.Matrix et ainsi de suite. Nos exemples de code sur GitHub contiennent toutes les substitutions nécessaires.

Voir Travailler avec des images dans des documents PS dans Java.

Le résultat de l’exécution de ce code apparaît comme

Ajouter une image

Vous pouvez télécharger des exemples et des fichiers de données à partir de GitHub.

Have any questions about Aspose.Page?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.