Maschera Vettoriale dello Strato

Panoramica della Maschera Vettoriale dello Strato

Una maschera vettoriale è un percorso indipendente dalla risoluzione che ritaglia i contenuti dello strato. Le maschere vettoriali sono di solito più accurate di quelle create con strumenti basati su pixel. È possibile creare maschere vettoriali con gli strumenti penna o forme.

Aspose.PSD supporta il rendering e l’applicazione di maschere vettoriali. È possibile modificare le maschere vettoriali attraverso la modifica dei Percorsi Vettoriali.

Percorso vettoriale in Aspose.PSD

L’accesso ai percorsi vettoriali in Aspose.PSD è fornito tramite le risorse VsmsResouce e VmskResouce che sono classi figlie di VectorPathDataResource.

todo:image_alt_text

Come modificare un percorso vettoriale?

Struttura del percorso vettoriale

La struttura di base per manipolare i percorsi è VectorPathRecord. Ma per la tua comodità, viene suggerita la seguente soluzione.

Per modificare facilmente i percorsi vettoriali, dovresti utilizzare la classe VectorPath, che contiene metodi per la comoda modifica dei dati vettoriali nelle risorse derivate da VectorPathDataResource.

Inizia creando un oggetto di tipo VectorPath.

Per comodità, puoi utilizzare il metodo statico VectorDataProvider.CreateVectorPathForLayer, troverà una risorsa vettoriale nello strato di input e creerà un oggetto VectorPath basato su di essa.

Dopo tutte le modifiche, è possibile applicare l’oggetto VectorPath con le modifiche indietro allo strato utilizzando il metodo statico VectorDataProvider.UpdateLayerFromVectorPath.

Il tipo VectorPath contiene un elenco di elementi PathShape e descrive un’intera immagine vettoriale che può essere composta da una o più forme.

todo:image_alt_text

Ogni PathShape è una figura vettoriale che è composta da un insieme separato di nodi di Bezier.

I nodi sono oggetti di tipo BezierKnot che rappresentano i punti da cui la figura è costruita.

todo:image_alt_text

Nell’esempio di codice seguente è mostrato come accedere a una figura e ai punti.

Come creare una forma?

Per modificare una forma, è necessario prendere una già esistente dall’elenco VectorPath.Shapes, o aggiungere una nuova forma creando un’istanza PathShape e aggiungendola all’elenco Shapes.

Come aggiungere nodi (punti)?

È possibile manipolare i punti della forma come elementi di un normale elenco usando la proprietà PathShape.Points, ad esempio, è possibile aggiungere punti alla forma:

Il BezierKnot contiene un punto di ancoraggio e due punti di controllo.

todo:image_alt_text

Se i punti di ancoraggio e di controllo hanno gli stessi valori, allora quel nodo avrà un angolo acuto.

Per spostare la posizione del punto di ancoraggio insieme ai punti di controllo (similmente a come avviene in Photoshop), il BezierKnot ha un metodo Shift.

Nell’esempio di codice seguente viene illustrato lo spostamento di un intero nodo di Bezier verso l’alto verticalmente per coordinata Y:

È possibile manipolare i punti della forma come elementi di un elenco regolare usando la proprietà PathShape.Points, ad esempio, è possibile aggiungere punti alla forma:

Proprietà di PathShape

La modifica di PathShape non è limitata alla modifica dei nodi, questo tipo ha anche altre proprietà.

PathOperations (Operazioni booleane)

La proprietà PathOperations è una cosiddetta operazione booleana, cambiando il valore del quale si definisce come vengono mescolate più forme.

Esistono i seguenti possibili valori:

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

todo:image_alt_text

Proprietà IsClosed

Inoltre, utilizzando la proprietà PathShape.IsClosed, è possibile determinare se il primo e l’ultimo nodo di una forma sono connessi.

Forma chiusa Forma aperta
todo:image_alt_text todo:image_alt_text

Proprietà FillColor

Nessuna figura può avere il proprio colore, quindi è possibile cambiare il colore dell’intero percorso vettoriale con la proprietà VectorPath.FillColor.

È possibile manipolare i punti della forma come elementi di un normale elenco usando la proprietà PathShape.Points, ad esempio, è possibile aggiungere punti alla forma:

Qui troverai il codice sorgente di VectorDataProvider e classi correlate: