【发布时间】:2013-10-22 21:01:44
【问题描述】:
我正在尝试使用 ios 中的蒙版创建具有自定义形状图案的个人资料图片图像。这是我用来创建蒙版图像的内容:
- (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage {
CGImageRef maskRef = maskImage.CGImage;
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef), NULL, false);
CGImageRef maskedImageRef = CGImageCreateWithMask([image CGImage], mask);
UIImage *maskedImage = [UIImage imageWithCGImage:maskedImageRef];
CGImageRelease(mask);
CGImageRelease(maskedImageRef);
// returns new image with mask applied
return maskedImage;
}
实现实例后,我调用:*(_profileImage is global UIImage)
UIImage *maskImage = [UIImage imageNamed:@"maskProfilePicture.png"];
UIImage *maskedImage = [self maskImage:_profileImage withMask:maskImage];
和结果(应该在蒙版的子视图中添加图像。但似乎蒙版图像与需要蒙版的图像重叠):
蒙版图像:(可能是我在 Photoshop 中创建的蒙版图像属性错误:)
【问题讨论】:
-
Core Graphics 调用看起来正确。您可以发布您正在使用的蒙版图像吗?根据文档,它必须在 DeviceGray 颜色空间中,并且不能有 alpha 分量。
-
我添加了蒙版图像但它是白色的,这就是为什么它似乎什么都没有:)))
-
天真的评论:面具不应该是黑色的吗?
-
@GabrielePetronella 一点也不天真。 :-)
-
谁能解释一下,为什么会出现这些边框? :( - prntscr.com/1z5nxw
标签: ios objective-c uiimage