如何删除遮罩后的UIImageView的透明区域?

在我的一个iOS应用程序中,我试图使用CGImageMask剪切图像的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')大小相同,周围有透明区域。 但是我想避开那些透明区域,裁剪结果图像。 我怎样才能做到这一点? 有几个面具,面具框架是不相似的。 我在此附上问题概览的参考图片。 请帮助我的朋友。 提前致谢。

在这里输入图像说明

查找自动裁剪UIImage。 这应该是透明的东西。

如何autocrop一个UIImage?

    Interesting Posts