在UIImage上创建一个褪色的角/边(不是动画)

时间:2012-01-17 08:24:34

标签: iphone uiimage

我想知道如何将UIImage的角落/侧面作为附图。

我已经将它设置为一个图层并包含如下所示的圆角,但是我可以淡化或渐变的代码是什么?

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

非常感谢你。

enter image description here

1 个答案:

答案 0 :(得分:6)

扩展上面的答案创建具有完全不透明中心的边框,边缘应该与透明度混合然后使用以下代码来掩盖

- (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];

}