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