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:

  1. Cree una secuencia de salida para el archivo PS resultante.
  2. Inicie un objeto PsSaveOptions con las opciones predeterminadas.
  3. Cree un PsDocument de 1 página con un flujo de salida ya creado y opciones para guardar.
  4. Cree un nuevo estado de gráficos y transfiéralo a la posición necesaria.
  5. Cree aspose.pydrawing.Bitmap a partir de un archivo de imagen.
  6. Cree aspose.pydrawing.TextureBrush a partir de la imagen.
  7. Establece la transformación necesaria en el pincel de textura.
  8. Establezca la pintura de textura como pintura actual en el estado gráfico actual del PsDocument.
  9. Crea un camino rectangular.
  10. Rellena el rectángulo con la pintura de textura.
  11. Guarde la pintura actual como una variable local para uso futuro.
  12. Establezca la pintura actual con un color rojo.
  13. Establezca un trazo con un ancho de 2 puntos aspose.pydrawing.Pen
  14. Delinea el rectángulo con el trazo actual.
  15. Salga del estado de gráficos actual al estado de gráficos de nivel superior.
  16. Cree la fuente sistema.
  17. Rellene y trace (delinee) el texto. Para rellenar la textura se utiliza pintura y para trazar se utiliza un bolígrafo negro.
  18. Delinea el texto en la otra posición con la pintura de textura y un nuevo aspose.pydrawing.Pen.
  19. Cierra la página.
  20. 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()

Vea cómo trabajar con texturas en documentos PS en .NET, Java.

El resultado de ejecutar este código es

Agregar patrón de mosaico de textura

Puede descargar ejemplos y archivos de datos desde GitHub.

Have any questions about Aspose.Page?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.