【问题标题】:How to remove the transparent area of an UIImageView after masking?屏蔽后如何去除 UIImageView 的透明区域?
【发布时间】:2015-01-08 10:55:05
【问题描述】:

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

【问题讨论】:

    标签: ios objective-c core-graphics masking cgimagemaskcreate


    【解决方案1】:

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

    How do I autocrop a UIImage?

    【讨论】:

    • 哇...!!!快速回答。非常感谢。它工作得很好。我一定会接受你的回答。但是 SO 只允许我在 4 分钟后这样做。哈哈。 :)
    猜你喜欢
    • 2017-01-01
    • 2014-09-04
    • 2011-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    • 2022-06-21
    • 1970-01-01
    相关资源
    最近更新 更多