Инвертировать маску CALayer, основанную на обводке (без заливки) ⇐ IOS
-
Anonymous
Инвертировать маску CALayer, основанную на обводке (без заливки)
Уважаемое сообщество Stack Overflow!
У меня возникла проблема со свойством маски CAShapeLayer в iOS (Swift).
Я пытаюсь создать ластик, который стирает части слоя изображения, маскируя его. Проблема возникает, когда я пытаюсь инвертировать его.
Я нашел несколько хороших ответов по инвертированию пути, но они были полезны только при использовании заполненного пути. Я пытаюсь обвести путь и использовать инвертированный путь для маскировки изображения. Толщина линии обводки должна быть примерно 30,0, чтобы она выглядела как ластик.
Я пробовал разные вещи. Моя текущая версия выглядит так:
[*]Создайте CAShapeLayer, который будет содержать путь ластика. [*]Установите для fill-color слоя значение nil [*]Установите цвет обводки и ширину линии [*]Добавьте слой в качестве маски слоя изображения
Это работает нормально, но видимыми становятся только те части изображения, которые находятся внутри обводки. Я хочу сделать это обратно. Я думал о черно-белой маске, но это не работает, потому что маска доставляется через альфа-канал.
Есть ли у кого-нибудь идеи, как решить проблему?
Уважаемое сообщество Stack Overflow!
У меня возникла проблема со свойством маски CAShapeLayer в iOS (Swift).
Я пытаюсь создать ластик, который стирает части слоя изображения, маскируя его. Проблема возникает, когда я пытаюсь инвертировать его.
Я нашел несколько хороших ответов по инвертированию пути, но они были полезны только при использовании заполненного пути. Я пытаюсь обвести путь и использовать инвертированный путь для маскировки изображения. Толщина линии обводки должна быть примерно 30,0, чтобы она выглядела как ластик.
Я пробовал разные вещи. Моя текущая версия выглядит так:
[*]Создайте CAShapeLayer, который будет содержать путь ластика. [*]Установите для fill-color слоя значение nil [*]Установите цвет обводки и ширину линии [*]Добавьте слой в качестве маски слоя изображения
Это работает нормально, но видимыми становятся только те части изображения, которые находятся внутри обводки. Я хочу сделать это обратно. Я думал о черно-белой маске, но это не работает, потому что маска доставляется через альфа-канал.
Есть ли у кого-нибудь идеи, как решить проблему?
Мобильная версия