Laag Vector Masker

Overzicht van het laag vector masker

Een vector masker is een resolutie-onafhankelijk pad dat de inhoud van de laag uitsnijdt. Vector maskers zijn meestal nauwkeuriger dan die gemaakt met op pixels gebaseerde tools. U kunt vector maskers maken met de pen- of vormgereedschappen.

Aspose.PSD ondersteunt het renderen en toepassen van vector maskers. U kunt vector maskers bewerken door het bewerken van Vector Paths.

Vectorpad in Aspose.PSD

Toegang tot vectorpaden in Aspose.PSD wordt geboden via VsmsResouce en VmskResouce bronnen die kindklassen zijn van VectorPathDataResource.

todo:image_alt_text

Hoe een vectorpad bewerken?

Structuur van vectorpad

De basisstructuur om paden te manipuleren is VectorPathRecord. Maar voor uw gemak wordt de volgende oplossing voorgesteld.

Voor eenvoudige bewerking van vectorpaden kunt u de VectorPath klasse gebruiken, die methoden bevat voor gemakkelijke bewerking van vectorgegevens in resources afgeleid van VectorPathDataResource.

Begin met het maken van een object van het type VectorPath.

Voor gemak kunt u de statische methode VectorDataProvider.CreateVectorPathForLayer gebruiken, die een vectorresource in de invoerlaag zal vinden en op basis daarvan een VectorPath-object zal maken.

Na alle bewerkingen kunt u het VectorPath-object met wijzigingen terug toepassen op de laag met behulp van de statische methode VectorDataProvider.UpdateLayerFromVectorPath.

Het VectorPath-type bevat een lijst van PathShape elementen en beschrijft een volledig vectorbeeld dat kan bestaan uit één of meer vormen.

todo:image_alt_text

Elke PathShape is een vectorfiguur die bestaat uit een aparte set Bezier-knopen (punt).

Knopen zijn objecten van het type BezierKnot die essentieel zijn voor het opbouwen van de figuur.

todo:image_alt_text

Het volgende codevoorbeeld toont hoe toegang te krijgen tot een figuur en punten.

Hoe een vorm maken?

Om een vorm te bewerken, moet u een bestaande ophalen uit de VectorPath.Shapes lijst, of een nieuwe vorm toevoegen door een PathShape instantie te maken en deze toe te voegen aan de Shapes lijst.

Hoe knopen (punten) toevoegen?

U kunt de punten van een vorm manipuleren als elementen van een reguliere lijst met behulp van de PathShape.Points eigenschap, bijvoorbeeld, u kunt vormpunten toevoegen:

BezierKnot bevat een ankerpunt en twee bedieningspunten.

todo:image_alt_text

Als anker- en bedieningspunten dezelfde waarden hebben, zal die knoop een scherpe hoek hebben.

Om de positie van het ankerpunt samen met de bedieningspunten te wijzigen (vergelijkbaar met wat er gebeurt in Photoshop), heeft de BezierKnot een Shift methode.

Het volgende codevoorbeeld laat zien hoe een volledige Bezier-knoop verticaal omhoog te verplaatsen volgens de Y-coördinaat:

U kunt de punten van een vorm manipuleren als elementen van een reguliere lijst met behulp van de PathShape.Points eigenschap, bijvoorbeeld, u kunt vormpunten toevoegen:

Eigenschappen van PathShape

Het bewerken van PathShape is niet beperkt tot het bewerken van knopen, dit type heeft ook andere eigenschappen.

PathOperations (Boolean-operaties)

De PathOperations eigenschap is een zogenaamde booleanbewerking, waarbij de waarde verandert hoe meerdere vormen worden gemengd.

Er zijn de volgende mogelijke waarden:

  • 0 = Uitsluiten van overlappende vormen (XOR-operatie).
  • 1 = Combineren van vormen (OF-operatie).
  • 2 = Aftrekken van voorste vorm (NIET-operatie).
  • 3 = Intersectie van vormgebieden (EN-operatie).

todo:image_alt_text

IsClosed Eigenschap

Ook kunnen we met behulp van de PathShape.IsClosed eigenschap bepalen of de eerste en laatste knoop van een vorm met elkaar zijn verbonden.

Gesloten vorm Open vorm
todo:image_alt_text todo:image_alt_text

FillColor Eigenschap

Geen enkele figuur kan zijn eigen kleur hebben, dus u kunt de kleur van het hele vectorpad veranderen met de VectorPath.FillColor eigenschap.

U kunt de punten van een vorm manipuleren als elementen van een reguliere lijst met behulp van de PathShape.Points eigenschap, bijvoorbeeld, u kunt vormpunten toevoegen:

Hier vindt u de broncode van VectorDataProvider en gerelateerde klassen: