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')大小相同,周围有透明区域。但我想避开那些透明区域,并裁剪结果图像。我怎样才能做到这一点?有几个蒙版,而且蒙版框架并不都相似。我在此处附上了问题概述的参考图像。请朋友们帮帮我。提前致谢。

在此处输入图像描述

4

1 回答 1

6

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

如何自动裁剪 UIImage?

于 2014-11-11T19:13:04.533 回答