Если пример смешанного кода, который вы видели, нацелен на iPhone OS, то это потому, что Core Graphics и Core Animation работают с предварительно умноженным альфа-каналом, поэтому при рисовании в CGBitmapContext
создаются предварительно умноженные данные, а содержимое непрозрачного представления должно быть в предварительно умноженный альфа-формат для правильной компоновки поверх других представлений. Однако, если вы просто пытаетесь смешать содержимое в непрозрачном виде, тогда любой из этих подходов будет работать, если ваше смешивание соответствует формату данных изображения.
Есть плюсы и минусы предварительно умноженных альфа-данных. У Тома Форсайта есть хорошее объяснение многих полезных свойств предварительно умноженной альфа . Основным недостатком является то, что некоторые этапы обработки фрагментов с фиксированными функциями (окружение текстур, туман и т. Д.) Построены вокруг предварительно неумноженного альфа-значения и могут не дать желаемых результатов, если вы попытаетесь использовать их с предварительно умноженными данными.