Робота з текстурами в PS файлі | Python
Додайте шаблон розбиття текстури в документ PS
Шаблон мозаїки текстури відноситься до зображення, яке використовується для заповнення або малювання об’єктів, таких як форми або текст. Якщо розмір зображення менший за розмір об’єкта, воно повторюється в обох напрямках X і Y, щоб належним чином покрити необхідні області.
Таке повторення зображення в графічних об’єктах називається тайлінгом. Щоб установити фарбу або обведення в PsDocument, необхідно надати об’єкт класу aspose.pydrawing.Brush для малювання та об’єкт класу aspose.pydrawing.Pen для обведення. у своїх відповідних методах.
Aspose.Page для Python через бібліотеку .NET обробляє всі важливі класи, реалізовані aspose.pydrawing.Brush, які пропонуються платформою Python. Це aspose.pydrawing.Color, aspose.pydrawing.TextureBrush, aspose.pydrawing.drawing2d.LinearGradientBrush і aspose.pydrawing.drawing2d.PathGradientBrush. Колір обведення в Python призначається окремо від властивостей обведення в об’єкті aspose.pydrawing.Pen із повторним використанням aspose.pydrawing.Brush. Таким чином, Aspose.Page для Python через бібліотеку .NET також може використовувати повний набір реалізацій paint для малювання ліній і окреслення фігур і тексту.
Щоб намалювати графічні об’єкти текстурованим візерунком у Aspose.Page для Python через бібліотеку .NET, достатньо просто передати aspose.pydrawing.TextureBrush у set_paint() або один із методи fill_text() або fill_and_stroke_text(), які приймають aspose.pydrawing.Brush як параметр.
Щоб контурувати графічні об’єкти текстурованим візерунком, ви повинні передати об’єкт aspose.pydrawing.TextureBrush також у set_paint() або один із outline_text() або ** fill_and_stroke_text()** методи, які приймають фарбу обведення як параметр.
У наведеному нижче прикладі ми демонструємо, як заповнити фігуру та текст, а також окреслити текст шаблоном плитки текстури.
Ось опис кроків роботи з Texture Pattern і PsDocument:
- Створіть вихідний потік для отриманого файлу PS.
- Ініціюйте об’єкт PsSaveOptions із параметрами за замовчуванням.
- Створіть 1-сторінковий PsDocument із уже створеним вихідним потоком і параметрами збереження.
- Створіть новий графічний стан і переведіть його в потрібне положення.
- Створіть aspose.pydrawing.Bitmap із файлу зображення.
- Створіть aspose.pydrawing.TextureBrush із зображення.
- Встановіть необхідну трансформацію в пензлі текстури.
- Встановіть фарбу текстури як поточну фарбу в поточному графічному стані PsDocument.
- Створіть контур прямокутника.
- Заповніть прямокутник текстурною фарбою.
- Збережіть поточний малюнок як локальну змінну для майбутнього використання.
- Встановіть поточну фарбу червоним кольором.
- Встановіть штрих шириною 2 точки aspose.pydrawing.Pen
- Окресліть прямокутник поточним штрихом.
- Вихід із поточного стану графіки до стану графіки верхнього рівня.
- Створіть системний шрифт.
- Заливка та обведення (контур) тексту. Для заповнення фактури використовується фарба, а для обведення використовується чорна ручка.
- Наведіть контур тексту в іншій позиції текстурною фарбою та новим aspose.pydrawing.Pen.
- Закрийте сторінку.
- Збережіть документ.
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()
Результатом виконання цього коду є
Ви можете завантажити приклади і файли даних з GitHub.