Создание выцветших углов / сторон на UIImage (не анимация) - PullRequest
6 голосов
/ 17 января 2012

Я хотел бы знать, как я могу сделать угол / сторону затухания UIImage как прикрепленное изображение.

Я установил его в качестве слоя, содержащего закругленные углы, как показано ниже, но какой код я могу его растушевать или градиентировать?

-(void) viewDidLoad{
[super viewDidLoad];
CALayer * layer = [image layer];
[layer setMasksToBounds:YES];
[layer setCornerRadius:10.0];
}

Большое спасибо.

enter image description here

Ответы [ 2 ]

6 голосов
/ 15 февраля 2013

Расширяя приведенный выше ответ, создайте маску с полностью непрозрачным центром, и края должны смешаться с прозрачностью, а затем используйте следующий код для маскировки

- (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage {

    CGImageRef imgRef = [image CGImage];
    CGImageRef maskRef = [maskImage CGImage];
    CGImageRef actualMask = CGImageMaskCreate(CGImageGetWidth(maskRef),
                                              CGImageGetHeight(maskRef),
                                              CGImageGetBitsPerComponent(maskRef),
                                              CGImageGetBitsPerPixel(maskRef),
                                              CGImageGetBytesPerRow(maskRef),
                                              CGImageGetDataProvider(maskRef), NULL, false);
    CGImageRef masked = CGImageCreateWithMask(imgRef, actualMask);
    return [UIImage imageWithCGImage:masked];

}
3 голосов
/ 25 января 2012

Если размер вашего изображения всегда одинаков (или соотношение сторон остается неизменным), то вам, вероятно, лучше всего реализовать это с помощью маски CALayer.

Заранее вы могли бы создать изображение маски (в фотошопе или аналогичном инструменте), которое указывает, что центральный квадрат изображения должен быть полностью непрозрачным, а края должны сливаться в сторону прозрачности.

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

Извините, у меня нет кода, пригодного для этого, ноэто может начать вас!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...