Vektor-Masken in Schichten

Übersicht über Vektor-Masken in Schichten

Eine Vektor-Maske ist ein auflösungsunabhängiger Pfad, der den Inhalt der Schicht ausschneidet. Vektor-Masken sind in der Regel genauer als solche, die mit pixelbasierten Werkzeugen erstellt wurden. Sie erstellen Vektor-Masken mit den Stift- oder Formwerkzeugen.

Aspose.PSD unterstützt das Rendern und Anwenden von Vektor-Masken. Sie können Vektor-Masken bearbeiten, indem Sie Vektor-Pfade bearbeiten.

Vektorpfad in Aspose.PSD

Der Zugriff auf Vektorpfade in Aspose.PSD erfolgt über VsmsResouce und VmskResouce Ressourcen, die Kindklassen von VectorPathDataResource sind.

todo:image_alt_text

Wie bearbeitet man einen Vektorpfad?

Vektorpfad-Struktur

Die Basisklasse zur Manipulation von Pfaden ist VectorPathRecord. Aber für Ihre Bequemlichkeit wird die folgende Lösung vorgeschlagen.

Für eine einfache Bearbeitung von Vektorpfaden sollten Sie die VectorPath Klasse verwenden, die Methoden für die komfortable Bearbeitung von Vektordaten in Ressourcen enthält, die von VectorPathDataResource abgeleitet sind.

Beginnen Sie mit der Erstellung eines Objekts des Typs VectorPath.

Zur Vereinfachung können Sie die statische Methode VectorDataProvider.CreateVectorPathForLayerverwenden. Diese Methode findet eine Vektorressource in der Eingabeschicht und erstellt ein VectorPath-Objekt darauf basierend.

Nach allen Bearbeitungen können Sie das VectorPath-Objekt mit den Änderungen zurück zur Schicht anwenden, indem Sie die statische Methode VectorDataProvider.UpdateLayerFromVectorPath verwenden.

Der VectorPath-Typ enthält eine Liste von PathShape-Elementen und beschreibt ein gesamtes Vektorbild, das aus einer oder mehreren Formen bestehen kann.

todo:image_alt_text

Jede PathShape ist eine Vektorgestalt, die aus einem separaten Satz von Bezier-Knoten (Punkt) besteht.

Knoten sind Objekte des Typs BezierKnot, die im Wesentlichen die Punkte sind, aus denen die Figur aufgebaut wird.

todo:image_alt_text

Im folgenden Codebeispiel wird gezeigt, wie auf eine Figur und Punkte zugegriffen wird.

Wie erstellt man eine Form?

Um eine Form zu bearbeiten, müssen Sie eine vorhandene aus der VectorPath.Shapes-Liste abrufen oder eine neue Form hinzufügen, indem Sie eine Instanz von PathShape erstellen und sie der Shapes-Liste hinzufügen.

Wie fügt man Knoten (Punkte) hinzu?

Man kann die Punkte der Form als Elemente einer regulären Liste mit Hilfe der PathShape.Points-Eigenschaft bearbeiten. Zum Beispiel können Sie Formpunkte hinzufügen:

BezierKnot enthält Ankerpunkt und zwei Steuerpunkte.

todo:image_alt_text

Wenn Anker- und Steuerpunkte dieselben Werte haben, wird dieser Knoten einen spitzen Winkel haben.

Um die Position des Ankerpunkts zusammen mit den Steuerpunkten zu ändern (ähnlich wie es in Photoshop geschieht), hat der BezierKnot eine Shift-Methode.

Das folgende Codebeispiel zeigt das Verschieben des gesamten Bezierknotens vertikal nach oben um die Y-Koordinate:

Man kann die Punkte der Form als Elemente einer regulären Liste mit der PathShape.Points-Eigenschaft bearbeiten. Zum Beispiel können Sie Formpunkte hinzufügen:

PathShape-Eigenschaften

Die Bearbeitung von PathShape ist nicht auf das Bearbeiten von Knoten beschränkt, dieser Typ hat auch andere Eigenschaften.

Pfadoperationen (Boolesche Operationen)

Die PathOperations-Eigenschaft ist eine sogenannte boolesche Operation, deren Wertänderung definiert, wie mehrere Formen vermischt werden.

Es gibt die folgenden möglichen Werte:

  • 0 = ExcludeOverlappingShapes (XOR-Operation).
  • 1 = CombineShapes (OR-Operation).
  • 2 = SubtractFrontShape (NOT-Operation).
  • 3 = IntersectShapeAreas (AND-Operation).

todo:image_alt_text

IsClosed-Eigenschaft

Durch Verwendung der PathShape.IsClosed-Eigenschaft können wir feststellen, ob der erste und der letzte Knoten einer Form verbunden sind.

Geschlossene Form Geöffnete Form
todo:image_alt_text todo:image_alt_text

FillColor-Eigenschaft

Keine Figur kann ihre eigene Farbe haben, so können Sie die Farbe des gesamten Vektorpfads mit der VectorPath.FillColor-Eigenschaft ändern.

Die Punkte der Form können als Elemente einer regulären Liste mit Hilfe der PathShape.Points-Eigenschaft bearbeitet werden. Zum Beispiel können Sie Formpunkte hinzufügen:

Hier finden Sie den Quellcode von VectorDataProvider und verwandten Klassen: