Travailler avec des texturesdans PS | Java
Ajouter un motif de mosaïque de texture dans un document PS
Un motif de mosaïque de texture est une image utilisée pour remplir ou dessiner des objets : des formes ou du texte. Si la taille de l’image est inférieure à la taille de l’objet, elle est répétée dans les directions X et Y pour couvrir toutes les zones nécessaires.
Le processus de répétition de l’image à l’intérieur d’objets graphiques est appelé carrelage. Afin de définir la peinture ou le trait dans PsDocument, nous devons transmettre un objet de la classe java.awt.Paint pour une peinture et un objet de java.awt.Stroke pour le trait dans les méthodes.
La bibliothèque Aspose.Page pour Java traite toutes les classes importantes implémentées java.awt.Paint proposées par la plate-forme Java. Il s’agit de java.awt.Color, java.awt.TexturePaint, java.awt.LinearGradientPaint et java.awt.RadialGradientPaint. La couleur du trait en Java est attribuée séparément des propriétés du trait dans l’objet java.awt.Stroke en utilisant à nouveau java.awt.Paint. Ainsi, la bibliothèque Aspose.Page pour Java peut également utiliser un ensemble complet d’implémentations de Paint également pour dessiner des lignes et décrire des formes et du texte.
Afin de peindre des objets graphiques avec un motif texturé dans la bibliothèque Aspose.Page pour Java, il suffit simplement de passer java.awt.TexturePaint dans setPaint() ou l’un des fillText( ) ou fillAndStrokeText() qui accepte java.awt.Paint comme paramètre.
Afin de décrire les objets graphiques avec un motif texturé dans la bibliothèque Aspose.Page pour Java, vous devez également transmettre l’objet java.awt.TexturePaint dans setPaint() ou l’un des **outlineText() ** ou fillAndStrokeText() qui accepte la peinture par traits comme paramètre.
Dans l’exemple ci-dessous, nous montrons comment remplir une forme et un texte et décrire un texte avec un motif de mosaïque de texture.
Description des étapes de travail avec Texture Pattern et PsDocument dans l’exemple :
- Créez un flux de sortie pour le fichier PS résultant.
- Créez un objet PsSaveOptions avec les options par défaut.
- Créez un PsDocument d’une page avec un flux de sortie déjà créé et enregistrez les options.
- Créez un nouvel état graphique et traduisez-le dans la position nécessaire.
- Créez java.awt.image.BufferedImage à partir du fichier image.
- Créez java.awt.TexturePaint à partir de l’image.
- Définissez la transformation nécessaire dans le pinceau de texture.
- Définissez la peinture de texture comme peinture actuelle dans l’état graphique actuel de PsDocument.
- Créez un chemin rectangulaire.
- Remplissez le rectangle avec la peinture texturée.
- Enregistrez la peinture actuelle en tant que variable locale pour une utilisation future.
- Définissez la peinture actuelle avec une couleur rouge.
- Définir le trait avec une largeur de 2 points java.awt.BasicStroke
- Décrivez le rectangle avec un trait actuel.
- Quittez l’état graphique actuel et passez à l’état graphique de niveau supérieur.
- Créez une police système.
- Remplissez et contournez le texte (contour). Pour remplir la texture, de la peinture est utilisée et pour caresser, un stylo noir est utilisé.
- Décrivez le texte dans l’autre position avec la peinture texturée et le nouveau java.awt.BasicStroke.
- Fermez la page.
- Enregistrez le document.
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();
Voir travailler avec des textures dans les documents PS dans .NET.
Le résultat de l’exécution de ce code apparaît comme suit
Vous pouvez télécharger des exemples et des fichiers de données à partir de GitHub.