iOS - 裁剪图片方法CGImageCreateWithImageInRect

本文介绍了如何使用CGImageCreateWithImageInRect裁剪iOS应用中的图片,特别强调了在高分辨率屏幕下,裁剪坐标需乘以屏幕scale以避免裁剪误差。提供了解决方案并指出裁剪结果为CGImageRef类型,需进一步转换为UIImage。
摘要由CSDN通过智能技术生成

裁剪图片方法

CGImageCreateWithImageInRect(CGImageRef  _Nullable image, CGRect rect)

参数解析:

  • image: 需要被裁剪的图片
  • rect: 裁剪范围

注意

  • CGImageCreateWithImageInRect 是C的函数,使用的坐标都是像素
  • 在iOS中使用的都是点坐标

所以在高分辨率的状态下加载了@2x或@3x的图片,而CGImageCreateWithImageInRect还是以@1x的尺寸去进行裁剪,最终只裁剪了部分尺寸的内容

解决方案:

[UIScreen mainScreen].scale; // 获取当前屏幕坐标与像素坐标的比例

在裁剪范围的宽度和高度上都乘以 [UIScreen mainScreen].scale 即可

最后说两句

这个方法获取到的是CGImageRef类型

CGImageCreateWithImageInRect(CGImageRef  _Nullable image, CGRect rect)

配合下方方法获取UIImage

[UIImage imageWithCGImage:(nonnull CGImageRef)];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值