Trabajar con texturas en un archivo PS | Pitón
Agregar patrón de mosaico de textura en documento PS
Un patrón de mosaico de textura se refiere a una imagen utilizada para rellenar o dibujar objetos como formas o texto. Cuando el tamaño de la imagen es menor que el del objeto, se repite en las direcciones X e Y para cubrir adecuadamente las áreas requeridas.
Esta repetición de la imagen dentro de objetos gráficos se conoce como mosaico. Para configurar pintura o trazo en un PsDocument es necesario proporcionar un objeto de la clase aspose.pydrawing.Brush para pintar y un objeto de la clase aspose.pydrawing.Pen para acariciar en sus respectivos métodos.
Aspose.Page para Python a través de la biblioteca .NET procesa todas las clases importantes implementadas por aspose.pydrawing.Brush que ofrece la plataforma Python. Estos son aspose.pydrawing.Color, aspose.pydrawing.TextureBrush, aspose.pydrawing.drawing2d.LinearGradientBrush y aspose.pydrawing.drawing2d.PathGradientBrush. Un color de trazo en Python se asigna por separado de las propiedades de trazo en el objeto aspose.pydrawing.Pen y se usa nuevamente aspose.pydrawing.Brush. Por lo tanto, Aspose.Page para Python a través de la biblioteca .NET también puede utilizar un conjunto completo de implementaciones de Paint para dibujar líneas y delinear formas y texto.
Para pintar objetos gráficos con un patrón texturizado en Aspose.Page para Python a través de la biblioteca .NET, basta con simplemente pasar aspose.pydrawing.TextureBrush a set_paint() o uno de los métodos fill_text() o fill_and_stroke_text() que aceptan aspose.pydrawing.Brush como parámetro.
Para delinear objetos gráficos con un patrón texturizado, debes pasar el objeto aspose.pydrawing.TextureBrush también a set_paint() o uno de los outline_text() o ** métodos fill_and_stroke_text()** 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.
Aquí hay una descripción de los pasos para trabajar con Patrón de textura y PsDocument:
- Cree una secuencia de salida para el archivo PS resultante.
- Inicie un objeto PsSaveOptions con las 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 aspose.pydrawing.Bitmap a partir de un archivo de imagen.
- Cree aspose.pydrawing.TextureBrush 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 del 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.
- Establezca un trazo con un ancho de 2 puntos aspose.pydrawing.Pen
- Delinea el rectángulo con el 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 un nuevo aspose.pydrawing.Pen.
- Cierra la página.
- Guarde el documento.
1# The path to the documents directory.
2data_dir = Util.get_data_dir_working_with_textures()
3
4# Create an output stream for the PostScript document
5with open(data_dir + "AddTextureTilingPattern_outPS.ps", "wb") as out_ps_stream:
6 # Create the save options with the A4 size
7 options = PsSaveOptions()
8
9 # Create a new 1-paged PS Document
10 document = PsDocument(out_ps_stream, options, False)
11
12
13 document.write_graphics_save()
14 document.translate(200, 100)
15
16 #Create a Bitmap object from an image file
17 with aspose.pydrawing.Bitmap(data_dir + "TestTexture.bmp") as image:
18 # Create a texture brush from the image
19 brush = aspose.pydrawing.TextureBrush(image, aspose.pydrawing.drawing2d.WrapMode.TILE)
20
21 # Add scaling in the X direction to the mattern
22 transform = aspose.pydrawing.drawing2d.Matrix(float(2), float(0), float(0), float(1), float(0), float(0))
23 brush.transform = transform
24
25 # Set this texture brush as a current paint
26 document.set_paint(brush)
27
28 # Create a rectangle path
29 path = aspose.pydrawing.drawing2d.GraphicsPath()
30 path.add_rectangle(aspose.pydrawing.RectangleF(0, 0, 200, 100))
31
32 # Fill the rectangle
33 document.fill(path)
34
35 # Get the current paint
36 paint = document.get_paint()
37
38 # Set a red stroke
39 pen1 = aspose.pydrawing.Pen(aspose.pydrawing.Color.red)
40 pen1.width = float(2)
41 document.set_stroke(pen1)
42
43 # Stroke the rectangle
44 document.draw(path)
45
46 document.write_graphics_restore()
47
48 # Fill the text with the texture pattern
49 font = aspose.page.ExternalFontCache.create_font_by_family_name("Arial", 96, aspose.pydrawing.FontStyle.BOLD)
50 pen2 = aspose.pydrawing.Pen(aspose.pydrawing.Color.black)
51 pen2.width = float(2)
52 document.fill_and_stroke_text("ABC", font, 200, 300, paint, pen2)
53
54 # Outline the text with the texture pattern
55 pen3 = aspose.pydrawing.Pen(aspose.pydrawing.Color.black)
56 pen3.brush = paint
57 pen3.width = float(5)
58 document.outline_text("ABC", font, 200, 400, pen3)
59
60 # Close the current page
61 document.close_page()
62
63 # Save the document
64 document.save()
El resultado de ejecutar este código es
Puede descargar ejemplos y archivos de datos desde GitHub.