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.
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.
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.
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.
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).
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 |
---|---|
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: