我知道有很多关于面具的问题,但对他们的答案并没有帮助我(只是部分)。
我需要做我的形象。我创建了mask.png并在代码中使用它:
- (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 masked = CGImageCreateWithMask([image CGImage], mask);
UIImage* maskedImage = [UIImage imageWithCGImage:masked];
CGImageRelease(masked);
CGImageRelease(mask);
return maskedImage;
}
一切都很棒,每个人都很开心。但是当我开始在设备上测试这个方法时,我发现它不是掩盖我的图像(在模拟器中一切正常)。我如何掩饰我的形象?
P.S。暂时我用我的面具将view.layes.mask作为图层。这个变种正在设备上工作。可以通过任何方式从这一层中保存回合吗?
答案 0 :(得分:1)
如果您需要的只是圆形图像视图,则不需要执行所有这些操作。
UIImageView * myimageview = [[UIImageView alloc]init];
myimageview.layer.cornerRadius = myimageview.frame.size.height;
myimageview.layer.masksToBounds = true;
使用上面的代码并将任何图像设置为该imageview,您将获得圆形图像视图。这里你没有使图像成为圆形,而是图像视图。