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 :
- pour les images opaques ;
- pour les images transparentes ;
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 :
- Créez un flux de sortie pour le fichier PS résultant.
- Créez un objet PsSaveOptions avec les options par défaut.
- Créez un PsDocument d’une page avec un flux de sortie déjà créé et enregistrez les options.
- Créez un nouvel état graphique.
- Créez System.Drawing.Bitmap à partir du fichier image.
- Créez la transformation nécessaire pour l’image.
- Ajoutez l’image à l’objet PsDocument.
- Quittez l’état graphique actuel pour passer au niveau supérieur.
- Fermez la page.
- 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
Vous pouvez télécharger des exemples et des fichiers de données à partir de GitHub.