每次新的网络通话都会从设计师那里得到一张普通的图片。但设计是图像必须是这样的形状:
我该怎么做?在android上我使用一个路径来创建这样的形状,然后使用着色器在该形状中绘制图像。我在iOS上找不到类似内容的东西?
答案 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