Робота з текстурами в 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() методи, які приймають фарбу обведення як параметр.
У наведеному нижче прикладі ми демонструємо, як заповнити фігуру та текст, а також окреслити текст шаблоном плитки текстури.
Опис кроків роботи з Texture Pattern і PsDocument у прикладі:
- Створіть вихідний потік для отриманого файлу PS.
- Створіть об’єкт PsSaveOptions із параметрами за замовчуванням.
- Створіть 1-сторінковий 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.