Как мне извлечь альфа-канал UIImage или CGImageRef и преобразовать его в маску, которую я могу использовать с CGImageMaskCreate?
Например:
По сути, для любого изображения меня не волнуют цвета внутри изображения. Все, что я хочу, - это создать изображение в оттенках серого, которое представляет альфа-канал. Затем это изображение можно использовать для маскировки других изображений.
Пример поведения этого находится в UIBarButtonItem, когда вы предоставляете ему изображение значка. Согласно документам Apple, в нем говорится:
Изображения, отображаемые на панели, взяты из этого изображения. Если это изображение слишком велико для размещения на панели, оно масштабируется по размеру. Обычно размер изображения панели инструментов и панели навигации составляет 20 x 20 точек. Альфа-значения в исходном изображении используются для создания изображений - непрозрачные значения игнорируются.
UIBarButtonItem принимает любое изображение и смотрит только на альфа-канал, а не на цвета изображения.