Quartz2D之截取图片指定区域

Quartz2D之截取图片指定区域

有些时候我们需要处理拍照后的图片截取操作,比如在上传用户头像的时候,用户上传的图片可能是很长的一张图片,但这样最后显示的头像就不会太完美。我们需要在用户上传头像的时候,有一个可以截取图片的功能。

需求分析

从上图直观看出,随着用户的触摸移动,会创建一个透明遮罩来表示需要截取的区域,然后截取了区域里的图片。因为我这里demo只是为了掩饰,imageView和控制器view约束尺寸一样了,会有放大效果,裁剪图片是正确的。

实现步骤

随着用户触摸移动,根据这个我们可以使用pan手势来实现,手势会有状态,我们这里可以记录开始触摸时的点,触摸中改变的点,触摸结束时的点。然后根据这些点,可以很容易的计算出我们需要裁剪的区域。

黑色透明区域,只是一个普通的,黑色透明的view,在用户移动手指时,动态计算截取区域并设置这个view的frame值。当松手的时候,裁剪图片并清除view的frame值即可。

代码实现

最终newImage就是我们需要的图片,demo下载:clipPhotoDemo

    A+
发布日期:2016年06月10日  所属分类:iOS
标签:
六阿哥

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: