Работа с текстурами в PS-файле | Питон

Добавить образец мозаики текстуры в документ 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()**, которые принимают обводку в качестве параметра.

В приведенном ниже примере мы демонстрируем, как заполнить фигуру и текст, а также обвести текст узором мозаики текстуры.

Вот описание шагов работы с Pattern Pattern и PsDocument:

  1. Создайте выходной поток для полученного PS-файла.
  2. Инициируйте объект PsSaveOptions с параметрами по умолчанию.
  3. Создайте одностраничный PsDocument с уже созданным потоком вывода и сохраните параметры.
  4. Создайте новое графическое состояние и переведите его в необходимое положение.
  5. Создайте aspose.pydrawing.Bitmap из файла изображения.
  6. Создайте aspose.pydrawing.TextureBrush из изображения.
  7. Установите необходимое преобразование текстурной кисти.
  8. Установите текстурную краску в качестве текущей краски в текущем графическом состоянии PsDocument.
  9. Создайте прямоугольный путь.
  10. Заполните прямоугольник текстурной краской.
  11. Сохраните текущую отрисовку как локальную переменную для использования в будущем.
  12. Установите текущую краску красного цвета.
  13. Установите обводку шириной в 2 пункта aspose.pydrawing.Pen
  14. Обведите прямоугольник текущей обводкой.
  15. Выход из текущего состояния графики в состояние графики верхнего уровня.
  16. Создайте системный шрифт.
  17. Заполните и обведите (обведите) текст. Для заливки текстуры используется краска, а для обводки – черная ручка.
  18. Обведите текст в другой позиции текстурной краской и новым aspose.pydrawing.Pen.
  19. Закройте страницу.
  20. Сохраните документ.
 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()

См. работу с текстурами в документах PS в .NET, Java.

Результат запуска этого кода:

Добавить узор текстуры

Вы можете загрузить примеры и файлы данных с сайта GitHub.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.