Arbeiten mit Texturen in PostScript | .NET

Fügen Sie im PS-Dokument ein Texturkachelmuster hinzu

Ein Texturkachelmuster ist ein Bild, das zum Füllen oder Zeichnen von Objekten verwendet wird: Formen oder Text. Wenn die Größe des Bildes kleiner als die Größe des Objekts ist, wird es in X- und Y-Richtung wiederholt, um alle erforderlichen Bereiche abzudecken.

Der Vorgang der Wiederholung des Bildes innerhalb von Grafikobjekten wird als Kacheln bezeichnet. Um Farbe oder Strich in PsDocument festzulegen, müssen wir ein Objekt der Klasse System.Drawing.Brush für ein Gemälde und ein Objekt der Klasse System.Drawing.Pen für den Strich übergeben Methoden.

Die Aspose.Page for .NET-Bibliothek verarbeitet alle Unterklassen von System.Drawing.Brush, die von der .NET-Plattform angeboten werden. Dies sind System.Drawing.SolidBrush, System.Drawing.TextureBrush, System.Drawing.LinearGradientBrush, System.Drawing.PathGradientBrush und System.Drawing.HatchBrush. Die Klasse System.Drawing.Pen kann nicht erweitert werden, da sie versiegelt ist, aber sie enthält System.Drawing.Brush als Eigenschaft und daher kann die Bibliothek Aspose.Page für .NET auch einen vollständigen Satz verwenden von Pinseln auch zum Zeichnen von Linien und zum Umreißen von Formen und Text.

Um Grafikobjekte mit einem strukturierten Muster in der Aspose.Page für .NET-Bibliothek zu malen, reicht es aus, einfach System.Drawing.TextureBrush an SetPaint() oder einen der FillText zu übergeben () oder FillAndStrokeText()-Methoden, die System.Drawing.Brush als Parameter akzeptieren.

Um Grafikobjekte mit einem strukturierten Muster in der Aspose.Page für .NET-Bibliothek zu umreißen, sollten Sie einen neuen System.Drawing.Pen mit System.Drawing.TextureBrush erstellen und ihn an SetStroke übergeben () oder eine der Methoden OutlineText() oder FillAndStrokeText(), die System.Drawing.Pen als Parameter akzeptiert.

Im folgenden Beispiel zeigen wir, wie Sie eine Form und einen Text füllen und einen Text mit einem Texturkachelmuster umreißen.

Beschreibung der Arbeitsschritte mit Texture Pattern und PsDocument im Beispiel:

  1. Erstellen Sie einen Ausgabestream für die resultierende PS-Datei.
  2. Erstellen Sie ein PsSaveOptions-Objekt mit Standardoptionen.
  3. Erstellen Sie ein einseitiges PsDocument mit einem bereits erstellten Ausgabestream und Speicheroptionen.
  4. Erstellen Sie einen neuen Grafikstatus und verschieben Sie ihn an die erforderliche Position.
  5. Erstellen Sie System.Drawing.Bitmap aus der Bilddatei.
  6. Erstellen Sie System.Drawing.TextureBrush aus dem Bild.
  7. Stellen Sie die erforderliche Transformation im Texturpinsel ein.
  8. Legen Sie den Texturpinsel als aktuelle Farbe im aktuellen Grafikstatus von PsDocument fest.
  9. Erstellen Sie einen rechteckigen Pfad.
  10. Füllen Sie das Rechteck mit dem Texturpinsel.
  11. Speichern Sie die aktuelle Farbe als lokale Variable für die zukünftige Verwendung.
  12. Stellen Sie den aktuellen Strich mit einem roten Stift ein.
  13. Umreißen Sie das Rechteck mit einem aktuellen Stift.
  14. Verlassen Sie den aktuellen Grafikstatus in den Grafikstatus der oberen Ebene.
  15. Erstellen Sie eine System-Schriftart.
  16. Text füllen und streichen (umreißen). Zum Füllen der Textur wird ein Pinsel und zum Streichen ein schwarzer Stift verwendet.
  17. Umreißen Sie den Text an der anderen Position mit dem neuen System.Drawing.Pen, der mit dem Texturpinsel als Pinsel erstellt wurde.
  18. Schließen Sie die Seite.
  19. Speichern Sie das Dokument.
 1// Paint rectangle and text and outline text with tiled image (texture pattern) in PS document.
 2
 3string outputFileName = "AddTextureTilingPattern_outPS.ps";
 4
 5//Create save options with A4 size
 6PsSaveOptions options = new PsSaveOptions();
 7
 8// Create new 1-paged PS Document
 9PsDocument document = new PsDocument(OutputDir + outputFileName, options, false);
10
11document.WriteGraphicsSave();
12document.Translate(200, 100);
13
14//Create a Bitmap object from image file
15using (Bitmap image = new Bitmap(DataDir + "TestTexture.bmp"))
16{
17    //Create texture brush from the image
18    TextureBrush brush = new TextureBrush(image, WrapMode.Tile);
19
20    //Add scaling in X direction to the mattern
21    Matrix transform = new Matrix(2, 0, 0, 1, 0, 0);
22    brush.Transform = transform;
23
24    //Set this texture brush as current paint
25    document.SetPaint(brush);
26}
27
28//Create rectangle path
29GraphicsPath path = new GraphicsPath();
30path.AddRectangle(new RectangleF(0, 0, 200, 100));
31
32//Fill rectangle
33document.Fill(path);
34
35//Get current paint
36Brush paint = document.GetPaint();
37
38//Set red stroke
39document.SetStroke(new Pen(new SolidBrush(Color.Red), 2));
40//Stroke the rectangle
41document.Draw(path);
42
43document.WriteGraphicsRestore();
44
45//Fill text with texture pattern                
46System.Drawing.Font font = new System.Drawing.Font("Arial", 96, FontStyle.Bold);
47document.FillAndStrokeText("ABC", font, 200, 300, paint, new Pen(Color.Black, 2));
48
49//Outline text with texture pattern
50document.OutlineText("ABC", font, 200, 400, new Pen(paint, 5));
51
52//Close current page
53document.ClosePage();
54
55//Save the document
56document.Save();

Für Linux, MacOS und andere Nicht-Windows-Betriebssysteme bieten wir die Verwendung unseres Nuget-Pakets Aspose.Page.Drawing an. Es verwendet das Aspose.Drawing-Backend anstelle der System.Drawing-Systembibliothek. Importieren Sie also den Namensraum Aspose.Page.Drawing anstelle des Namensraums System.Drawing. Im obigen Codeausschnitt wird Aspose.Page.Drawing.RectangleF anstelle von System.Drawing.RectangleF, Aspose.Page.Drawing.Drawing2D.GraphicsPath anstelle von System.Drawing.Drawing2D.GraphicsPath usw. verwendet. Unsere Codebeispiele auf GitHub enthalten alle notwendigen Ersetzungen.

Siehe Arbeiten mit Texturen in PS-Dokumenten in Java.

Das Ergebnis der Ausführung dieses Codes wird wie folgt angezeigt:

Texturkachelmuster hinzufügen

Sie können Beispiele und Datendateien herunterladen von GitHub.

Have any questions about Aspose.Page?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.