Travailler avec des texturesdans PS | Python
Ajouter un motif de mosaïque de texture dans un document PS
Un motif de mosaïque de texture fait référence à une image utilisée pour remplir ou dessiner des objets tels que des formes ou du texte. Lorsque la taille de l’image est plus petite que celle de l’objet, elle est répétée dans les directions X et Y pour couvrir correctement les zones requises.
Cette répétition de l’image au sein des objets graphiques est connue sous le nom de carrelage. Pour définir la peinture ou le trait dans un PsDocument, il est nécessaire de fournir un objet de la classe aspose.pydrawing.Brush pour la peinture et un objet de la classe aspose.pydrawing.Pen pour le trait. dans leurs méthodes respectives.
Aspose.Page pour Python via la bibliothèque .NET traite toutes les classes importantes implémentées par aspose.pydrawing.Brush proposée par la plateforme Python. Il s’agit de aspose.pydrawing.Color, aspose.pydrawing.TextureBrush, aspose.pydrawing.drawing2d.LinearGradientBrush et aspose.pydrawing.drawing2d.PathGradientBrush. Une couleur de trait en Python est attribuée séparément des propriétés de trait dans l’objet aspose.pydrawing.Pen en utilisant à nouveau aspose.pydrawing.Brush. Ainsi, Aspose.Page pour Python via la bibliothèque .NET peut également utiliser un ensemble complet d’implémentations de paint pour dessiner des lignes et décrire des formes et du texte.
Afin de peindre des objets graphiques avec un motif texturé dans Aspose.Page pour Python via la bibliothèque .NET, il suffit de passer simplement aspose.pydrawing.TextureBrush dans set_paint() ou l’un des les méthodes fill_text() ou fill_and_Stroke_text() qui acceptent aspose.pydrawing.Brush comme paramètre.
Afin de décrire des objets graphiques avec un motif texturé, vous devez également transmettre l’objet aspose.pydrawing.TextureBrush dans set_paint() ou l’un des outline_text() ou ** Méthodes fill_and_Stroke_text()** qui acceptent la peinture par traits comme paramètre.
Dans l’exemple ci-dessous, nous montrons comment remplir une forme et un texte et décrire un texte avec un motif de mosaïque de texture.
Voici une description des étapes de travail avec Texture Pattern et PsDocument :
- Créez un flux de sortie pour le fichier PS résultant.
- Initiez 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 et traduisez-le dans la position nécessaire.
- Créez aspose.pydrawing.Bitmap à partir d’un fichier image.
- Créez aspose.pydrawing.TextureBrush à partir de l’image.
- Définissez la transformation nécessaire dans le pinceau de texture.
- Définissez la peinture de texture comme peinture actuelle dans l’état graphique actuel du PsDocument.
- Créez un chemin rectangulaire.
- Remplissez le rectangle avec la peinture texturée.
- Enregistrez la peinture actuelle en tant que variable locale pour une utilisation future.
- Définissez la peinture actuelle avec une couleur rouge.
- Définissez un trait avec une largeur de 2 points aspose.pydrawing.Pen
- Décrivez le rectangle avec le trait actuel.
- Quittez l’état graphique actuel et passez à l’état graphique de niveau supérieur.
- Créez une police système.
- Remplissez et contournez le texte (contour). Pour remplir la texture, de la peinture est utilisée et pour caresser, un stylo noir est utilisé.
- Décrivez le texte dans l’autre position avec la peinture texturée et un nouveau aspose.pydrawing.Pen.
- Fermez la page.
- Enregistrez le document.
1# The path to the documents directory.
2data_dir = Util.get_data_dir_working_with_textures()
3
4# Create an output stream for the PostScript document
5with open(data_dir + "AddTextureTilingPattern_outPS.ps", "wb") as out_ps_stream:
6 # Create the save options with the A4 size
7 options = PsSaveOptions()
8
9 # Create a new 1-paged PS Document
10 document = PsDocument(out_ps_stream, options, False)
11
12
13 document.write_graphics_save()
14 document.translate(200, 100)
15
16 #Create a Bitmap object from an image file
17 with aspose.pydrawing.Bitmap(data_dir + "TestTexture.bmp") as image:
18 # Create a texture brush from the image
19 brush = aspose.pydrawing.TextureBrush(image, aspose.pydrawing.drawing2d.WrapMode.TILE)
20
21 # Add scaling in the X direction to the mattern
22 transform = aspose.pydrawing.drawing2d.Matrix(float(2), float(0), float(0), float(1), float(0), float(0))
23 brush.transform = transform
24
25 # Set this texture brush as a current paint
26 document.set_paint(brush)
27
28 # Create a rectangle path
29 path = aspose.pydrawing.drawing2d.GraphicsPath()
30 path.add_rectangle(aspose.pydrawing.RectangleF(0, 0, 200, 100))
31
32 # Fill the rectangle
33 document.fill(path)
34
35 # Get the current paint
36 paint = document.get_paint()
37
38 # Set a red stroke
39 pen1 = aspose.pydrawing.Pen(aspose.pydrawing.Color.red)
40 pen1.width = float(2)
41 document.set_stroke(pen1)
42
43 # Stroke the rectangle
44 document.draw(path)
45
46 document.write_graphics_restore()
47
48 # Fill the text with the texture pattern
49 font = aspose.page.ExternalFontCache.create_font_by_family_name("Arial", 96, aspose.pydrawing.FontStyle.BOLD)
50 pen2 = aspose.pydrawing.Pen(aspose.pydrawing.Color.black)
51 pen2.width = float(2)
52 document.fill_and_stroke_text("ABC", font, 200, 300, paint, pen2)
53
54 # Outline the text with the texture pattern
55 pen3 = aspose.pydrawing.Pen(aspose.pydrawing.Color.black)
56 pen3.brush = paint
57 pen3.width = float(5)
58 document.outline_text("ABC", font, 200, 400, pen3)
59
60 # Close the current page
61 document.close_page()
62
63 # Save the document
64 document.save()
Le résultat de l’exécution de ce code est
Vous pouvez télécharger des exemples et des fichiers de données à partir de GitHub.