如何以特定形状绘制图像

时间:2014-09-22 07:41:35

标签: ios objective-c uiimage

每次新的网络通话都会从设计师那里得到一张普通的图片。但设计是图像必须是这样的形状:

enter image description here

我该怎么做?在android上我使用一个路径来创建这样的形状,然后使用着色器在该形状中绘制图像。我在iOS上找不到类似内容的东西?

1 个答案:

答案 0 :(得分:0)

感谢Krivoblotsky。您可以使用这段代码来屏蔽图像:

- (UIImage*) _maskImage:(UIImage *) image withMask:(UIImage *) mask
{
    CGImageRef imageReference = image.CGImage;
    CGImageRef maskReference = mask.CGImage;

    CGImageRef imageMask = CGImageMaskCreate(CGImageGetWidth(maskReference),
            CGImageGetHeight(maskReference),
            CGImageGetBitsPerComponent(maskReference),
            CGImageGetBitsPerPixel(maskReference),
            CGImageGetBytesPerRow(maskReference),
            CGImageGetDataProvider(maskReference),
            NULL,
            YES
    );

    CGImageRef maskedReference = CGImageCreateWithMask(imageReference, imageMask);
    CGImageRelease(imageMask);

    UIImage *maskedImage = [UIImage imageWithCGImage:maskedReference];
    CGImageRelease(maskedReference);

    return maskedImage;
}

您只需要确保您的图像是黑色而不是黑色,因为它将用作透明度。

这是一个非常好的教程,并向您显示蒙版图像:

http://jeroendeleeuw.com/post/33638733049/how-to-mask-images-with-core-graphics-in-ios