Использование NSShadow для непрямоугольных форм

Я рисую тени различных непрямоугольных форм внутри объекта CIImage. Я сделал это, создав подкласс CIFilter и объединив собственное ядро ​​фильтра и фильтр размытия по Гауссу. Мне интересно, можно ли добиться повышения производительности с помощью NSShadow.

Также я не уверен, можно ли использовать NSShadow для рисования тени непрямоугольной формы? Например, в ответе на другой вопрос я обнаружил, что для используйте NSShadow, сначала нужно создать NSBezierPath формы.

Любые подсказки, предложения или я полностью здесь, пытаясь использовать NSShadow в этой ситуации?


person Andrius    schedule 20.06.2011    source источник


Ответы (1)


Не знаю, будет ли это быстрее, но точно будет легче. И помните, чем меньше у вас кода, тем меньше у вас ошибок.

NSShadow работает с любой формой, прямоугольной или другой. На самом деле, некоторые вещи, которые мы обычно не считаем тенью, на самом деле могут быть реализованы как тени. Например, свечение — это просто белая «тень». Я предполагаю, что кольца фокусировки - это тени внутри.

Вам не нужно создавать NSBezierPath. Рисование изображения с тенью будет работать просто отлично. Единственное, что не рисует градиент (как в NSGradient).

Для других читателей: все это в равной степени относится к Quartz, к свойствам теней CGContext и исключению CGGradient и, возможно, CGShading.

person Peter Hosey    schedule 20.06.2011