Альфа-смешение по краям UIImage - PullRequest
0 голосов
/ 12 марта 2011

У меня есть два прямоугольных изображения: одно на переднем плане, другое на заднем плане.Я пытаюсь смешать края изображения на переднем плане, чтобы изображение на переднем плане выглядело как «часть» фонового изображения.Другими словами, я пытаюсь применить эффект прозрачности, при этом непрозрачность изображения переднего плана уменьшается от 100% в центре изображения до 0% на краях.Я обнаружил, что эта операция иногда упоминается под разными именами, такими как: альфа-композитинг, альфа-смешение, растушевка краев или прозрачность ребер.Вот более подробное описание эффекта, который я пытаюсь получить: http://en.wikipedia.org/wiki/Alpha_compositing

Я посмотрел документацию CGContext, но я не нашел ни одной функции, которая бы делала это из коробки.

Есть ли способ сделать это с помощью CGContext или даже OpenGL?Был бы способ сделать это на непрямоугольном изображении?Я знаю, что все изображения прямоугольные, но я имею в виду изображение с, скажем, кругом и прозрачной областью вокруг.

1 Ответ

1 голос
/ 06 апреля 2011

Функция CGImageCreateWithMask () в библиотеке iOS может выполнять альфа-смешивание с уменьшением непрозрачности по краям.Можно заставить что-то работать, комбинируя код в этих двух ссылках:

http://iosdevelopertips.com/cocoa/how-to-mask-an-image.html

Создание маски с помощью CGImageMaskCreate полностью черное (iphone)

Уровень серого (от черного до белого) каждого пикселя в маске будет определять уровень непрозрачности при смешивании.

...