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