Travailler avec Visual Brush dans un fichier XPS | Python
Un pinceau visuel est un outil puissant pour créer des conceptions visuellement attrayantes et dynamiques dans des contextes de conception graphique et de développement de logiciels. Ils sont utilisés pour remplir ou tracer des formes avec du contenu visuel, tel que des images, des dégradés ou d’autres éléments graphiques vous permettant de peindre un élément visuel avec un autre.
En termes plus techniques, un pinceau visuel est un type de pinceau qui fait référence à un objet visuel, tel qu’une image ou un élément d’interface utilisateur, et utilise cet objet pour définir l’apparence d’une forme ou d’un tracé. Lorsqu’il est appliqué à une forme, le pinceau visuel restitue l’objet visuel référencé dans les limites de la forme. Ils peuvent être utilisés pour remplir une forme avec une image, créer des motifs ou des textures, ou même appliquer des effets graphiques complexes.
Ajouter une grille à l’aide de Visual Brush
Aspose.Page pour Python via .NET fournit la classe XpsVisualBrush, vous permettant d’ajouter une grille à un document XPS. Pour y parvenir, vous devez spécifier un XpsPathGeometry et ajouter un XpsCanvas à l’objet de la classe XpsDocument. L’extrait de code suivant illustre la fonctionnalité complète permettant d’ajouter une grille à un document XPS :
1# The path to the documents directory.
2data_dir = Util.get_data_dir_working_with_visual_brush()
3
4doc = XpsDocument()
5# Geometry for the magenta grid VisualBrush
6path_geometry = doc.create_path_geometry()
7path_geometry.add_segment(doc.create_poly_line_segment(
8[ aspose.pydrawing.PointF(240, 5), aspose.pydrawing.PointF(240, 310), aspose.pydrawing.PointF(0, 310) ], True))
9path_geometry[0].start_point = aspose.pydrawing.PointF(0, 5)
10
11# Canvas for the magenta grid VisualBrush
12visual_canvas = doc.create_canvas()
13
14visual_path = visual_canvas.add_path(
15doc.create_path_geometry("M 0,4 L 4,4 4,0 6,0 6,4 10,4 10,6 6,6 6,10 4,10 4,6 0,6 Z"))
16visual_path.fill = doc.create_solid_color_brush(doc.create_color(1, .61, 0.1, 0.61))
17
18grid_path = doc.create_path(path_geometry)
19#Create a Visual Brush, it is specified by some XPS fragment (vector graphics and glyphs)
20visualBrush: XpsVisualBrush = doc.create_visual_brush(visual_canvas,
21 aspose.pydrawing.RectangleF(0, 0, 10, 10), aspose.pydrawing.RectangleF(0, 0, 10, 10))
22grid_path.fill = visualBrush
23visualBrush.tile_mode = XpsTileMode.TILE
24# New canvas
25canvas = doc.add_canvas()
26canvas.render_transform = doc.create_matrix(1, 0, 0, 1, 268, 70)
27# Add a grid
28canvas.add_path(path_geometry)
29# Red transparent rectangle in the middle top
30path = canvas.add_path(doc.create_path_geometry("M 30,20 l 258.24,0 0,56.64 -258.24,0 Z"))
31path = canvas.add_path(doc.create_path_geometry("M 10,10 L 228,10 228,100 10,100"))
32path.fill = doc.create_solid_color_brush(doc.create_color(1.0, 0.0, 0.0))
33path.opacity = 0.7
34# Save the resultant XPS document
35doc.save(data_dir + "AddGrid_out.xps")
Le résultat is next
Vous pouvez télécharger des exemples et des fichiers de données à partir de GitHub.