Отсечение NSImage вокруг определенного NSRect - PullRequest
0 голосов
/ 24 июля 2010

У меня есть NSImage с разными изображениями внутри. Положение изображений внутри него будет оставаться одинаковым все время, поэтому мне нужно указать прямоугольник, чтобы получить подизображение в положении прямоугольника внутри изображения. Как это можно сделать?

1 Ответ

3 голосов
/ 24 июля 2010

Почему внутри одного изображения несколько изображений? Преждевременная оптимизация?

В любом случае, когда вы рисуете изображение , один из параметров, который вы передаете, - это часть изображения, которую вы хотите. Обычно вы передаете либо границы изображения, либо нулевой прямоугольник (оба означают одно и то же), но при желании вы можете пройти и под прямоугольник.

Если прямоугольник назначения больше исходного прямоугольника, он будет увеличиваться (непропорционально); если он меньше, он будет уменьшаться (непропорционально). Отрегулируйте размер прямоугольника назначения, чтобы он соответствовал размеру исходного прямоугольника, если вы не хотите масштабировать.

Если вы хотите оставить чертеж в NSImageView, создайте пустой NSImage нужного размера , затем нарисуйте его, затем передайте это изображение в представление изображений. Это, вероятно, разрушает любое преимущество в производительности, которое вы надеялись получить, смешав все это в одном изображении.

Вы также можете создать собственный подкласс NSView, NSImageView или CALayer, который имеет свойство для NSImage и свойство для исходного прямоугольника и рисует только этот раздел.

...