美文网首页
iOS 精确的图片裁剪

iOS 精确的图片裁剪

作者: hallfrita | 来源:发表于2019-05-09 19:07 被阅读0次

核心方法

    CGImageCreateWithImageInRect(CGImageRef image, CGRect rect)

实现

    UIImage *toCropImage = [image fixOrientation];

    CGImageRef cgImage = CGImageCreateWithImageInRect(toCropImage.CGImage, croprect);

    UIImage *cropped = [UIImage imageWithCGImage:cgImage];

    CGImageRelease(cgImage);

     return cropped;

这样做会发现,明明给了个正方形区域,但是宽高总有一边多一个像素点。如果是裁剪大图还好,要是裁剪一个10X10的正方形,裁出来11X10,就很明显。

解决办法:

查看官方API ( https://developer.apple.com/documentation/coregraphics/1454683-cgimagecreatewithimageinrect?language=objc)发现,CGImageCreateWithImageInRect要传 CGRectIntegral类型。

所以,区域需要都是整数,如下处理一下就好了

CGRect croprect = CGRectMake(floor(x), floor(y), round(width), round(height));

贴上完整方法

- (UIImage *)cropImage:(UIImage *)image toRect:(CGRect)rect {

    CGFloat x = rect.origin.x;

    CGFloat y = rect.origin.y;

    CGFloat width = rect.size.width;

    CGFloat height = rect.size.height;

    CGRect croprect = CGRectMake(floor(x), floor(y), round(width), round(height));

    UIImage *toCropImage = [image fixOrientation];// 纠正方向

    CGImageRef cgImage = CGImageCreateWithImageInRect(toCropImage.CGImage, croprect);

    UIImage *cropped = [UIImage imageWithCGImage:cgImage];

    CGImageRelease(cgImage);

    return cropped;

}

相关文章

  • iOS 精确的图片裁剪

    核心方法 实现 这样做会发现,明明给了个正方形区域,但是宽高总有一边多一个像素点。如果是裁剪大图还好,要是裁剪一个...

  • iOS图片精确提取主色调算法iOS-Palette(附源码)

    iOS图片精确提取主色调算法iOS-Palette(附源码) iOS图片精确提取主色调算法iOS-Palette(...

  • 【iOS】图片裁剪

    【iOS】图片裁剪 Demo地址

  • [iOS] 图像处理:一种高效裁剪图片圆角的算法

    [iOS] 图像处理:一种高效裁剪图片圆角的算法 [iOS] 图像处理:一种高效裁剪图片圆角的算法

  • 【iOS】图片裁剪

    ####【iOS】图片裁剪 UIImage *imageTop=[UIImage imageNamed:@"111...

  • iOS 头像裁剪、图片裁剪、微信头像裁剪

    iOS 头像裁剪、图片裁剪、微信头像裁剪 关于图片裁剪,基本上所有涉及到c端用户带基本信息的App基本都会用到,使...

  • iOS裁剪图片

    工作中突然用到了压缩图片展示缩略图被压扁和拉伸的现象,于是先按比例压缩然后再进行裁剪。类似UIView中的UIVi...

  • iOS 图片裁剪

    1、开启位图上下文 2、获取上下文 3、对位图上下文添加裁剪的范围,并对齐裁剪 4、从位图上下文中获取已经裁剪的图...

  • iOS 图片裁剪

    写在前面:实际工作中,有时候需要按照需求将图片裁剪成圆形,或者你需要的形状。这里以圆形为例。 核心:void CG...

  • iOS图片裁剪

    在iOS开发过程中,经常会遇到上传图片的需求,有时获取到图片之后需要裁剪一下,而系统提供的方法只能裁剪出一个正方形...

网友评论

      本文标题:iOS 精确的图片裁剪

      本文链接:https://www.haomeiwen.com/subject/fxegoqtx.html