Warstwowy Mask Vector

Omówienie maski wektorowej warstwy

Maska wektorowa to ścieżka niezależna od rozdzielczości, która przycinają zawartość warstwy. Maseczki wektorowe są zazwyczaj bardziej dokładne niż te tworzone za pomocą narzędzi opartych na pikselach. Maseczki wektorowe tworzy się za pomocą narzędzi ołówka lub kształtów.

Aspose.PSD obsługuje renderowanie i stosowanie masek wektorowych. Możesz edytować maski wektorowe poprzez edycję Ścieżek Wektorowych.

Ścieżka wektorowa w Aspose.PSD

Dostęp do ścieżek wektorowych w Aspose.PSD uzyskuje się dzięki zasobom VsmsResource i VmskResource, które są klasami pochodnymi od VectorPathDataResource.

todo:image_alt_text

Jak edytować ścieżkę wektorową?

Struktura ścieżki wektorowej

Podstawową strukturą do manipulowania ścieżkami jest VectorPathRecord. Dla Twojej wygody proponowane jest jednak następujące rozwiązanie.

Dla łatwej edycji ścieżek wektorowych powinieneś użyć klasy VectorPath, która zawiera metody do wygodnej edycji danych wektorowych w zasobach pochodzących z VectorPathDataResource.

Rozpocznij od stworzenia obiektu typu VectorPath.

Dla wygody, możesz skorzystać ze statycznej metody VectorDataProvider.CreateVectorPathForLayer, która znajdzie zasób wektorowy w warstwie wejściowej i stworzy obiekt VectorPath na jego podstawie.

Po wszystkich edycjach, możesz zastosować obiekt VectorPath ze zmianami z powrotem do warstwy za pomocą statycznej metody VectorDataProvider.UpdateLayerFromVectorPath.

Typ VectorPath zawiera listę elementów PathShape i opisuje cały obraz wektorowy, który może składać się z jednego lub więcej kształtów.

todo:image_alt_text

Każdy kształt PathShape to figura wektorowa składająca się z oddzielnego zbioru węzłów Beziera (punktów).

Węzły są obiektami typu BezierKnot będącymi w zasadzie punktami, z których jest budowana figura.

todo:image_alt_text

Poniższy przykład kodu pokazuje, jak uzyskać dostęp do figury i punktów.

Jak utworzyć kształt?

Aby edytować kształt, musisz uzyskać istniejący z listy VectorPath.Shapes, lub dodać nowy kształt, tworząc instancję PathShape i dodając go do listy Shapes.

Jak dodać węzły (punkty)?

Możesz manipulować punktami kształtu jako elementami standardowej Listy za pomocą właściwości PathShape.Points, na przykład, możesz dodać punkty kształtu:

BezierKnot zawiera punkt kotwicy i dwa punkty kontrolne.

todo:image_alt_text

Jeśli punkty kotwicy i kontrolne mają te same wartości, wtedy węzeł będzie miała kąt ostry.

Aby zmienić położenie punktu kotwicy wraz z punktami kontrolnymi (podobnie jak ma to miejsce w Photoshopie), BezierKnot ma metodę Shift.

Poniższy przykład kodu demonstruje przesuwanie całego węzła beziera pionowo w górę według współrzędnej Y:

Możesz manipulować punktami kształtu jako elementami standardowej Listy za pomocą właściwości PathShape.Points, na przykład, możesz dodać punkty kształtu:

Właściwości PathShape

Edycja PathShape nie ogranicza się jedynie do edytowania węzłów, ten typ ma również inne właściwości.

Operacje na ścieżce (Operacje logiczne)

Właściwość PathOperations to tzw. operacja logiczna, zmieniając wartość której definiuje się, jak są mieszane wielokrotne kształty.

Możliwe są następujące wartości:

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

todo:image_alt_text

Właściwość IsClosed

Dodatkowo, korzystając z właściwości PathShape.IsClosed, możemy określić, czy pierwszy i ostatni węzeł kształtu są połączone.

Kształt zamknięty Kształt otwarty
todo:image_alt_text todo:image_alt_text

Właściwość FillColor

Żaden kształt nie może mieć swojego własnego koloru, dlatego możesz zmienić kolor całej ścieżki wektorowej za pomocą właściwości VectorPath.FillColor.

Możesz manipulować punktami kształtu jako elementami standardowej Listy za pomocą właściwości PathShape.Points, na przykład, możesz dodać punkty kształtu:

Tu znajdziesz kod źródłowy klasy VectorDataProvider i powiązanych klas: