Работа с текстурами в 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//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.