如何在屏蔽后删除UIImageView的透明区域?

Tha*_*ran 3 core-graphics objective-c masking cgimagemaskcreate ios

在我的一个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];
}
Run Code Online (Sandbox Code Playgroud)

所以,我的形象将是:

myImageView.image = [self maskImage:[UIImage imageNamed:@"image.png"] 
                           withMask:[UIImage imageNamed:@"mask.png"]];
Run Code Online (Sandbox Code Playgroud)

问题: 输出图像与参考图像('image.png')的大小相同,周围有透明区域.但我想避开那些透明区域,并裁剪结果图像.我怎样才能做到这一点?有几个掩模,并且掩模框架与所有掩模框架不相似.我在这里附上问题概述的参考图像.请帮帮我的朋友.提前致谢.

在此输入图像描述

Mar*_*kle 6

查找自动裁剪UIImage.这应该是透明的.

如何自动切换UIImage?