ios 裁剪框大小_iOS自定义裁剪图片比例尺寸,图片自动旋转解决办法

最近因做直播项目需要,要求上传直播的一个Cover页需要自定义裁剪图片的尺寸及比例,因为imagePicker只有一个imagePicker.allowsEditing这么个属性,但是这个属性设置之后,图片只能裁剪成1:1的正方形,而且具体尺寸也不能改变,太死板,自己在网上找了一些资料,然后自己试着做了一个小Demo,给大家分享一下:

Demo连接:https://github.com/iosweihui/WHCropImage

原生裁剪是这样的:

Demo里面选择照片之后可以通过手势来调整图片尺寸和比例

还有一点说明就是Demo里面加了一个分类:UIImage+FixOrientation

这个问题是有关iOS设备拍照的问题,就是用手机拍照之后当你使用这个图片的时候你会发现图片被翻转了90,应该有不少人遇到过这个问题吧.

我再做的时候是在用手机竖屏进行拍摄的情况下,通过

UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];

方法得到照片之后对图片进行裁剪操作之后会导致image的一个imageOrientation属性发生变化,有种说法是只要照片大于2M就会出现这个问题:

用相机拍摄出来的照片含有EXIF信息,UIImage的imageOrientation属性指的就是EXIF中的orientation信息。

相机拍照后直接取出来的UIimage(用UIImagePickerController OriginalImage取出),它本身的imageOrientation属性是3,即UIImageOrientationRight。如果这个图片直接使用则没事,但是如果对它进行裁剪、缩放等操作后,它的这个imageOrientation属性会变成0。此时这张图片用在别的地方就会发生旋转。

如果我们忽略orientation信息,而直接对照片进行像素处理或者drawInRect等操作,得到的结果是翻转或者旋转90之后的样子。这是因为我们执行像素处理或者drawInRect等操作之后,imageOrientaion信息被删除了,imageOrientaion被重设为0,造成照片内容和imageOrientaion不匹配。

所以,在对照片进行处理之前,先将照片旋转到正确的方向,并且返回的imageOrientaion为0,但是imageOrientaion这个属性是只读的,那么我们就可采用Category来解决,就是Demo中的那个UIImage+FixOrientation.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值