Работа с текстурами в 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 в примере:
- Создайте выходной поток для полученного PS-файла.
- Создайте объект PsSaveOptions с параметрами по умолчанию.
- Создайте одностраничный PsDocument с уже созданным потоком вывода и сохраните параметры.
- Создайте новое графическое состояние и переведите его в необходимое положение.
- Создайте java.awt.image.BufferedImage из файла изображения.
- Создайте java.awt.TexturePaint из изображения.
- Установите необходимое преобразование текстурной кисти.
- Установите текстурную краску в качестве текущей краски в текущем графическом состоянии PsDocument.
- Создайте прямоугольный путь.
- Заполните прямоугольник текстурной краской.
- Сохраните текущую отрисовку как локальную переменную для использования в будущем.
- Установите текущую краску красного цвета.
- Установите обводку шириной в 2 пункта java.awt.BasicStroke
- Обведите прямоугольник текущей обводкой.
- Выход из текущего состояния графики в состояние графики верхнего уровня.
- Создайте системный шрифт.
- Заполните и обведите (обведите) текст. Для заливки текстуры используется краска, а для обводки – черная ручка.
- Обведите текст в другой позиции текстурной краской и новым java.awt.BasicStroke.
- Закройте страницу.
- Сохраните документ.
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.