Lavorare con le texture in un file PS | Python
Aggiungi un pattern di texture a mosaico in un documento PS
Un pattern di texture a mosaico si riferisce a un’immagine utilizzata per riempire o disegnare oggetti come forme o testo. Quando le dimensioni dell’immagine sono inferiori a quelle dell’oggetto, viene ripetuta in entrambe le direzioni X e Y per coprire adeguatamente le aree richieste.
Questa ripetizione dell’immagine all’interno di oggetti grafici è nota come mosaico. Per impostare il disegno o il tratto in un PsDocument è necessario fornire un oggetto della classe aspose.pydrawing.Brush per il disegno e un oggetto della classe aspose.pydrawing.Pen per il tratto nei rispettivi metodi.
Aspose.Page per Python tramite la libreria .NET elabora tutte le classi importanti implementate da aspose.pydrawing.Brush offerte dalla piattaforma Python. Questi sono aspose.pydrawing.Color, aspose.pydrawing.TextureBrush, aspose.pydrawing.drawing2d.LinearGradientBrush e aspose.pydrawing.drawing2d.PathGradientBrush. In Python, il colore del tratto viene assegnato separatamente dalle proprietà del tratto nell’oggetto aspose.pydrawing.Pen utilizzando nuovamente aspose.pydrawing.Brush. Pertanto, Aspose.Page per Python tramite la libreria .NET può utilizzare anche un set completo di implementazioni di Paint per disegnare linee e delineare forme e testo.
Per dipingere oggetti grafici con un pattern texturizzato in Aspose.Page per Python tramite la libreria .NET, è sufficiente passare aspose.pydrawing.TextureBrush a set_paint() o a uno dei metodi fill_text() o fill_and_stroke_text() che accettano aspose.pydrawing.Brush come parametro.
Per contornare oggetti grafici con un pattern texturizzato, è necessario passare l’oggetto aspose.pydrawing.TextureBrush anche a set_paint() o a uno dei metodi outline_text() o fill_and_stroke_text() che accettano il colore del tratto come parametro.
Nell’esempio seguente mostriamo come riempire una forma e un testo e come contornare un testo con un pattern di texture a mosaico.
Ecco una descrizione dei passaggi per lavorare con Texture Pattern e PsDocument:
- Creare un flusso di output per il file PS risultante.
- Avviare un oggetto PsSaveOptions con le opzioni predefinite. 3. Creare un PsDocument di una pagina con un flusso di output già creato e opzioni di salvataggio.
- Creare un nuovo stato grafico e traslarlo nella posizione desiderata.
- Creare aspose.pydrawing.Bitmap da un file immagine.
- Creare aspose.pydrawing.TextureBrush dall’immagine.
- Impostare la trasformazione necessaria nel pennello texture.
- Impostare la texture paint come vernice corrente nello stato grafico corrente del PsDocument.
- Creare un tracciato rettangolare.
- Riempire il rettangolo con la texture paint.
- Salvare la vernice corrente come variabile locale per un utilizzo futuro.
- Impostare la vernice corrente con un colore rosso.
- Impostare un tratto con larghezza di 2 punti aspose.pydrawing.Pen
- Delineare il rettangolo con il tratto corrente.
- Uscire dallo stato grafico corrente e tornare allo stato grafico di livello superiore.
- Crea un font di sistema.
- Riempi e traccia (contorna) il testo. Per il riempimento usa la texture paint e per il contorno usa una penna nera.
- Contorna il testo nell’altra posizione con la texture paint e un nuovo aspose.pydrawing.Pen.
- Chiudi la pagina.
- Salva il 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()
Il risultato dell’esecuzione di questo codice è
È possibile scaricare esempi e file di dati da GitHub.