切取图片上的一部分小图片

工作中,有些需求需要我们提供四四方方的图片、或者定好尺寸的图片,一般情况下我们可以设置UIImageViewcontentModeUIViewContentModeScaleAspectFill时(imgView.contentMode = UIViewContentModeScaleAspectFill;)可以自动截取掉多余的某两端的边缘图,而且图片也不被拉伸。但这个也只能做到图片两端的切除并显示,而且只在UIImageView上面显示的时候有效,并没有真实的切割图片。

如果想要随心所欲的去切割图片。获取图片上任何一个位置的某一块,那就要用CGImageRef来对图片底层(CGImage)处理一下做一下处理。代码如下:

/* 根据 location位置  subSize大小 返回一个新的子image**/
- (UIImage *)subImageFromImage:(UIImage *)image origin:(CGPoint)location size:(CGSize)subSize{

    CGFloat screenScale = [UIScreen mainScreen].scale;

    CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], CGRectMake(location.x, location.y, subSize.width * screenScale, subSize.height * screenScale));
    UIImage *subImage = [UIImage imageWithCGImage:imageRef];
    CGImageRelease(imageRef);
    return subImage;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值