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

Добавить образец мозаики текстуры в документ PS

Узор текстурной мозаики — это изображение, которое используется для заливки или рисования объектов: фигур или текста. Если размер изображения меньше размера объекта, оно повторяется в направлениях X и Y для покрытия всех необходимых областей.

Процесс повторения изображения внутри графических объектов называется тайлингом. Чтобы установить краску или обводку в PsDocument мы должны передать объект класса java.awt.Paint для рисования и объект java.awt.Stroke для обводки в соответствующие методы.

Библиотека Aspose.Page для Java обрабатывает все важные классы, реализованные java.awt.Paint, предлагаемые платформой Java. Это java.awt.Color, java.awt.TexturePaint, java.awt.LinearGradientPaint и java.awt.RadialGradientPaint. Цвет обводки в Java назначается отдельно от свойств обводки в объекте java.awt.Stroke с повторным использованием java.awt.Paint. Таким образом, библиотека Aspose.Page для Java также может использовать полный набор реализаций Paint для рисования линий и обрисовки фигур и текста.

Чтобы рисовать графические объекты с текстурированным узором в библиотеке Aspose.Page для Java, достаточно просто передать java.awt.TexturePaint в setPaint() или один из fillText( ) или fillAndStrokeText(), которые принимают java.awt.Paint в качестве параметра.

Чтобы обвести графические объекты текстурированным узором в библиотеке Aspose.Page для Java, вы должны передать объект java.awt.TexturePaint также в setPaint() или в один из **outlineText(). ** или fillAndStrokeText(), которые принимают обводку в качестве параметра.

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

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

  1. Создайте выходной поток для полученного PS-файла.
  2. Создайте объект PsSaveOptions с параметрами по умолчанию.
  3. Создайте одностраничный PsDocument с уже созданным потоком вывода и сохраните параметры.
  4. Создайте новое графическое состояние и переведите его в необходимое положение.
  5. Создайте java.awt.image.BufferedImage из файла изображения.
  6. Создайте java.awt.TexturePaint из изображения.
  7. Установите необходимое преобразование текстурной кисти.
  8. Установите текстурную краску в качестве текущей краски в текущем графическом состоянии PsDocument.
  9. Создайте прямоугольный путь.
  10. Заполните прямоугольник текстурной краской.
  11. Сохраните текущую отрисовку как локальную переменную для использования в будущем.
  12. Установите текущую краску красного цвета.
  13. Установите обводку шириной в 2 пункта java.awt.BasicStroke
  14. Обведите прямоугольник текущей обводкой.
  15. Выход из текущего состояния графики в состояние графики верхнего уровня.
  16. Создайте системный шрифт.
  17. Заполните и обведите (обведите) текст. Для заливки текстуры используется краска, а для обводки – черная ручка.
  18. Обведите текст в другой позиции текстурной краской и новым java.awt.BasicStroke.
  19. Закройте страницу.
  20. Сохраните документ.
 1  // Paint rectangle and text and outline text with tiled image (texture pattern) in PS document.
 2
 3  String outputFileName = "AddTextureTilingPattern_outPS.ps";
 4
 5  //Create save options with A4 size
 6  PsSaveOptions options = new PsSaveOptions();
 7
 8  // Create new 1-paged PS Document
 9  PsDocument document = new PsDocument(getOutputDir() + outputFileName, options, false);
10
11  document.writeGraphicsSave();
12  document.translate(200, 100);
13
14//Create a BufferedImage object from image file
15  BufferedImage image = ImageIO.read(new File(getDataDir() + "TestTexture.bmp"));
16  
17  //Create image area doubled in width
18  Rectangle2D.Float imageArea = new Rectangle2D.Float(0, 0, image.getWidth() * 2, image.getHeight());
19  //Create texture brush from the image
20  TexturePaint paint = new TexturePaint(image, imageArea);
21  
22  //Create rectangle
23  Rectangle2D.Float shape = new Rectangle2D.Float(0, 0, 200, 100);
24  
25  //Set this texture brush as current paint
26  document.setPaint(paint);
27  //Fill rectangle
28  document.fill(shape);
29  
30  
31  document.setPaint(Color.RED);
32  document.setStroke(new BasicStroke(2));
33  document.draw(shape);
34  
35  document.writeGraphicsRestore();
36  
37  //Fill the text with the texture pattern
38  Font font = new Font("Arial", Font.BOLD, 96);
39  document.fillAndStrokeText("ABC", font, 200, 300, paint, Color.BLACK, new BasicStroke(2));
40
41  //Outline the text with the texture pattern
42  document.outlineText("ABC", font, 200, 400, paint, new BasicStroke(5));
43
44  //Close current page
45  document.closePage();
46
47  //Save the document
48  document.save();

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


Результат выполнения этого кода выглядит так:

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

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

Have any questions about Aspose.Page?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.