Робота з Visual Brush у файлі XPS | Python
Візуальний пензель — це потужний інструмент для створення візуально привабливих і динамічних дизайнів у контексті графічного дизайну та розробки програмного забезпечення. Вони використовуються для заповнення або обведення фігур візуальним вмістом, таким як зображення, градієнти або інші графічні елементи, що дозволяє вам розфарбовувати один візуальний елемент іншим.
Говорячи більш технічними термінами, візуальний пензель — це тип пензля, який посилається на візуальний об’єкт, наприклад зображення або елемент інтерфейсу користувача, і використовує цей об’єкт для визначення зовнішнього вигляду форми або контуру. При застосуванні до фігури візуальний пензель відтворює візуальний об’єкт, на який посилається, у межах фігури. Їх можна використовувати для заповнення форми зображенням, створення візерунків або текстур або навіть застосування складних графічних ефектів.
Додайте сітку за допомогою Visual Brush
Aspose.Page для Python через .NET надає клас XpsVisualBrush, що дозволяє додавати сітку до документа XPS. Щоб досягти цього, ви повинні вказати XpsPathGeometry і додати XpsCanvas до об’єкта класу XpsDocument. Наступний фрагмент коду демонструє повну функціональність для додавання сітки до документа 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 і 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")
Результат is next
Ви можете завантажити приклади і файли даних з GitHub.