如何在UIImageView进行遮罩后移除透明区域?

3

在我的一个iOS应用中,我正在尝试使用CGImageMask剪切图像的一部分。我已经成功地使用以下代码对图像进行了遮罩处理:

- (UIImage *)maskImage:(UIImage *)referenceImage 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([referenceImage CGImage], mask);
    return [UIImage imageWithCGImage:masked];
}

所以,我的图像将是:
myImageView.image = [self maskImage:[UIImage imageNamed:@"image.png"] 
                           withMask:[UIImage imageNamed:@"mask.png"]];
问题: 输出的图像与参考图像('image.png')的大小相同,周围有透明区域。但是我想避免这些透明区域,裁剪结果图像。如何实现呢?有几个掩模,掩模框架并非全部相似。我在此附上一个问题概述的参考图像。请大家帮忙解决,谢谢。

enter image description here

1个回答

6

哇...!!! 回答好快啊。非常感谢。它运行得很好。我一定会接受你的答案。但是SO只允许我在4分钟后这样做。哈哈。 :) - Thampuran

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接