Векторна маска шару
Огляд векторної маски шару
Векторна маска - це безвтратний шлях, який обрізає вміст шару. Векторні маски, як правило, є більш точними, ніж ті, що створені засобами на основі пікселів. Ви створюєте векторні маски за допомогою інструментів “ручка” або “форми”.
Aspose.PSD підтримує відтворення й застосування векторних масок. Ви можете редагувати векторні маски за допомогою редагування векторних шляхів.
Векторний шлях в Aspose.PSD
Доступ до векторних шляхів в Aspose.PSD забезпечується за допомогою ресурсів VsmsResouce та VmskResouce, які є дочірніми класами VectorPathDataResource.
Як редагувати векторний шлях?
Структура векторного шляху
Базова структура для маніпулювання шляхами - VectorPathRecord. Проте для вашої зручності пропонується наступний розв’язок.
Для легкого редагування векторних шляхів вам слід використовувати клас VectorPath, який містить методи для зручного редагування векторних даних в ресурсах, що походять від VectorPathDataResource.
Почніть з створення об’єкта типу VectorPath.
Для зручності ви можете використовувати статичний метод VectorDataProvider.CreateVectorPathForLayer, який знайде векторний ресурс від вхідного шару і створить об’єкт VectorPath на його основі.
Після всіх редагувань ви можете застосувати об’єкт VectorPath із змінами назад до шару, використовуючи статичний метод VectorDataProvider.UpdateLayerFromVectorPath.
Тип VectorPath містить список елементів PathShape та описує цілий векторний зображення, яке може складатися з одного або декількох форм.
Кожна PathShape - це векторна фігура, яка складається з окремого набору беїсерних вузлів.
Вузли - це об’єкти типу BezierKnot, які являють собою точки, з яких побудована фігура.
Наведений нижче приклад коду показує, як отримати фігуру та точки.
Як створити форму?
Для редагування форми вам потрібно отримати існуючу з VectorPath.Shapes списку, або додайте нову форму, створивши екземпляр PathShape і додаючи її до списку Shapes.
Як додати вузли (точки)?
Ви можете маніпулювати точками форми як елементами звичайного списку, використовуючи властивість PathShape.Points, наприклад, ви можете додати точки форми:
BezierKnot містить точку Anchor та дві точки Control.
Якщо якість точок Anchor і Control співпадає, то цей вузол матиме гострий кут.
Щоб змінити положення точки Anchor разом з контрольними точками (схоже на те, як це відбувається в Photoshop), у BezierKnot є метод Shift.
У наведеному нижче прикладі коду показано, як перемістити весь беїсерний вузол вертикально вгору за координатою Y:
Ви можете маніпулювати точками форми як елементами звичайного списку, використовуючи властивість PathShape.Points, наприклад, ви можете додати точки форми:
Властивості PathShape
Редагування PathShape не обмежується лише редагуванням вузлів, у цьому типі є й інші властивості.
Операції над шляхами (Булеві операції)
Властивість PathOperations є так званою булевою операцією, зміна значення якої визначає те, як змішуються кілька фігур.
Є наступні можливі значення:
- 0 = Виключити накладеніФігури (операція XOR).
- 1 = Поєднати фігури (операція OR).
- 2 = Відняти передню фігуру (операція NOT).
- 3 = Перетин областей фігур (операція AND).
Властивість IsClosed
Також, використовуючи властивість PathShape.IsClosed, ми можемо визначити, чи з’єднані перший та останній вузол в формі.
Закрита фігура | Відкрита фігура |
---|---|
![]() |
![]() |
Властивість FillColor
Жодна фігура не може мати власний колір, тому ви можете змінити колір всього векторного шляху за допомогою властивості VectorPath.FillColor.
Ви можете маніпулювати точками форми як елементами звичайного списку, використовуючи властивість PathShape.Points, наприклад, ви можете додати точки форми: