如何在UIImage中获取形状的UIBezierPath或将UIImage裁剪为特定形状 [英] How to get UIBezierPath of shape in UIImage or crop UIImage in a certain shape

查看:46
本文介绍了如何在UIImage中获取形状的UIBezierPath或将UIImage裁剪为特定形状的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是iOS的新手,我想知道是否可以获取 UIImage UIBezierPath .我的脸部布局有 UIImage ,并且想要获得 UIBezierPath ,这可以帮助我裁剪 UIImage .或者,有人可以告诉我有关裁剪 UIImage s的其他方法吗?但请确保裁剪以自定义形状(例如:脸,心等)而不是矩形进行.

I am new in iOS, I want to know if I can get the UIBezierPath of a UIImage. I have a UIImage of face layout and want to get the UIBezierPath, which helps me in cropping the UIImage. Or, can any one tell me about other ways of cropping UIImages?, but make sure cropping is in a custom shape (like: face, heart etc), not in a rectangle.

推荐答案

下面是代码用图像遮盖图像:

- (UIImage *)cerateImageFromImage:(UIImage *)image
                    withMaskImage:(UIImage *)mask {
    CGImageRef imageRef = image.CGImage;
    CGImageRef maskRef = mask.CGImage;

    CGImageRef imageMask = CGImageMaskCreate(CGImageGetWidth(maskRef),
                                             CGImageGetHeight(maskRef),
                                             CGImageGetBitsPerComponent(maskRef),
                                             CGImageGetBitsPerPixel(maskRef),
                                             CGImageGetBytesPerRow(maskRef),
                                             CGImageGetDataProvider(maskRef),
                                             NULL,
                                             YES);

    CGImageRef maskedReference = CGImageCreateWithMask(imageRef, imageMask);
    CGImageRelease(imageMask);

    UIImage *maskedImage = [UIImage imageWithCGImage:maskedReference];
    CGImageRelease(maskedReference);

    return maskedImage;
}

用法:

UIImage *image = [UIImage imageNamed:@"Photo.png"];
UIImage *mask = [UIImage imageNamed:@"Mask.png"];
self.imageView.image = [self cerateImageFromImage:image
                                     withMaskImage:mask];

这篇关于如何在UIImage中获取形状的UIBezierPath或将UIImage裁剪为特定形状的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆