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