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

Добавить образец мозаики текстуры в документ 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//Create an output stream for PostScript document
 2FileOutputStream outPsStream = new FileOutputStream(dataDir + "AddTextureTilingPattern_outPS.ps");
 3//Create save options with A4 size
 4PsSaveOptions options = new PsSaveOptions();
 5
 6//Create new PS Document with the page opened
 7PsDocument document = new PsDocument(outPsStream, options, false);
 8
 9document.writeGraphicsSave();
10document.translate(200, 100);
11
12//Create a BufferedImage object from image file
13BufferedImage image = ImageIO.read(new File(dataDir + "TestTexture.bmp"));
14
15//Create image area doubled in width
16Rectangle2D.Float imageArea = new Rectangle2D.Float(0, 0, image.getWidth() * 2, image.getHeight());
17//Create texture brush from the image
18TexturePaint paint = new TexturePaint(image, imageArea);
19
20//Create rectangle
21Rectangle2D.Float shape = new Rectangle2D.Float(0, 0, 200, 100);
22
23//Set this texture brush as current paint
24document.setPaint(paint);
25//Fill rectangle
26document.fill(shape);
27
28
29document.setPaint(Color.RED);
30document.setStroke(new BasicStroke(2));
31document.draw(shape);
32
33document.writeGraphicsRestore();
34
35//Fill the text with the texture pattern
36Font font = new Font("Arial", Font.BOLD, 96);
37document.fillAndStrokeText("ABC", font, 200, 300, paint, Color.BLACK, new BasicStroke(2));
38
39//Outline the text with the texture pattern
40document.outlineText("ABC", font, 200, 400, paint, new BasicStroke(5));
41
42//Close current page
43document.closePage();
44//Save the document
45document.save();

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


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

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

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

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.