Trabajar con texturas en un archivo PS | Java
Agregar patrón de mosaico de textura en documento PS
Un patrón de mosaico de textura es una imagen que se utiliza para rellenar o dibujar objetos: formas o texto. Si el tamaño de la imagen es menor que el tamaño del objeto, se repite en las direcciones X e Y para cubrir todas las áreas necesarias.
El proceso de repetición de una imagen dentro de objetos gráficos se llama mosaico. Para configurar pintura o trazo en PsDocument debemos pasar un objeto de la clase java.awt.Paint para una pintura y un objeto de java.awt.Stroke para trazar en los respectivos métodos.
La biblioteca Aspose.Page para Java procesa todas las clases importantes implementadas java.awt.Paint que ofrece la plataforma Java. Estos son java.awt.Color, java.awt.TexturePaint, java.awt.LinearGradientPaint y java.awt.RadialGradientPaint. El color del trazo en Java se asigna por separado de las propiedades del trazo en el objeto java.awt.Stroke y se usa nuevamente java.awt.Paint. Por lo tanto, la biblioteca Aspose.Page para Java también puede utilizar un conjunto completo de implementaciones de pintura para dibujar líneas y delinear formas y texto.
Para pintar objetos gráficos con un patrón texturizado en la biblioteca Aspose.Page para Java, basta con pasar java.awt.TexturePaint a setPaint() o uno de los fillText( ) o fillAndStrokeText() métodos que aceptan java.awt.Paint como parámetro.
Para delinear objetos gráficos con un patrón texturizado en la biblioteca Aspose.Page para Java, debe pasar el objeto java.awt.TexturePaint también a setPaint() o uno de los **outlineText() ** o fillAndStrokeText() métodos que aceptan trazos de pintura como parámetro.
En el siguiente ejemplo, demostramos cómo rellenar una forma y un texto y delinear un texto con un patrón de mosaico de textura.
Descripción de los pasos para trabajar con Patrón de textura y PsDocument en el ejemplo:
- Cree una secuencia de salida para el archivo PS resultante.
- Cree el objeto PsSaveOptions con opciones predeterminadas.
- Cree un PsDocument de 1 página con un flujo de salida ya creado y opciones para guardar.
- Cree un nuevo estado de gráficos y transfiéralo a la posición necesaria.
- Cree java.awt.image.BufferedImage a partir del archivo de imagen.
- Cree java.awt.TexturePaint a partir de la imagen.
- Establece la transformación necesaria en el pincel de textura.
- Establezca la pintura de textura como pintura actual en el estado gráfico actual de PsDocument.
- Crea un camino rectangular.
- Rellena el rectángulo con la pintura de textura.
- Guarde la pintura actual como una variable local para uso futuro.
- Establezca la pintura actual con un color rojo.
- Establecer trazo con un ancho de 2 puntos java.awt.BasicStroke
- Delinea el rectángulo con un trazo actual.
- Salga del estado de gráficos actual al estado de gráficos de nivel superior.
- Cree la fuente sistema.
- Rellene y trace (delinee) el texto. Para rellenar la textura se utiliza pintura y para trazar se utiliza un bolígrafo negro.
- Delinea el texto en la otra posición con la pintura de textura y el nuevo java.awt.BasicStroke.
- Cierra la página.
- Guarde el documento.
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();
Vea cómo trabajar con texturas en documentos PS en .NET.
El resultado de ejecutar este código aparece como
Puede descargar ejemplos y archivos de datos desde GitHub.