Какао: заполнение NSBezierPath изображением - PullRequest
2 голосов
/ 09 июня 2009

Я пытаюсь выяснить, как нарисовать путь, а затем заполнить его содержимым изображения, например, .png. У меня есть плитки различных форм (квадрат, треугольник и т. Д., Каждый из которых определяется NSBezierPath. Я могу залить их сплошным цветом, но я также хочу иметь возможность заполнить их каким-то растровым изображением вместо сплошного цвета.

Ответы [ 2 ]

2 голосов
/ 09 июня 2009

Я считаю, что вы хотите, чтобы обрезать рисунок в текущем графическом контексте. Apple имеет хорошие документы на этом . Их пример кода работает блестяще и является каноническим примером того, как выполнить довольно эффективное рисование в графическом контексте, настраиваемом Cocoa до того, как ваш drawRect: будет вызван.

По сути, когда вызывается ваш drawRect, все, что вы в итоге рисуете, автоматически маскируется путем отсечения текущего графического контекста (иначе говоря, путь настроен с помощью: [myBezierPath addClip]). addClip - это метод, специально разработанный для изменения текущего графического контекста, который «заблокирован» как цель метода addClip перед вызовом drawRect.

0 голосов
/ 09 июня 2009

Ответ Джаррета, вероятно, является наилучшим вариантом, но если вы хотите избежать путаницы с графическим контекстом, вы также можете использовать метод класса NSColor +colorWithPatternImage:. Это в основном позволяет использовать изображение везде, где вы обычно используете цвет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...