iOS 图片裁剪 + 旋转
之前分别介绍了图片裁剪和图片旋转方法
《iOS图片裁剪方法》
地址:https://www.nhooo.com/article/107308.htm
《iOS图片旋转方法》
地址:https://www.nhooo.com/article/107361.htm
裁剪和旋转是可以连在一起执行的。先定位到需要裁剪的区域,然后以此区域的中心为轴,旋转一定角度,最后获取旋转后此区域内的图片。可以用位图(Bitmap)绘制实现
staticfunccropImage(_image:UIImage,withRectrect:CGRect,angle:Double)->UIImage?{
//Createsabitmap-basedgraphicscontextwithrectsize
//andmakesitthecurrentcontext
UIGraphicsBeginImageContext(rect.size)
//Getcurrentgraphicscontext
guardletcontext=UIGraphicsGetCurrentContext()else{returnnil}
//Movecontextorigintorectcenter
context.translateBy(x:rect.width/2,y:rect.height/2)
//Convertangletoradianandrotate
context.rotate(by:CGFloat(angle/180*M_PI))
//Movecontextoriginback(-rect.width/2,-rect.height/2)
//andmoveoppositedirectionofrectorigin(-rect.minX,-rect.minY)
context.translateBy(x:-rect.width/2-rect.minX,y:-rect.height/2-rect.minY)
//Drawimageatcontextorigin
image.draw(at:.zero)
//Getimage
letfinalImage=UIGraphicsGetImageFromCurrentImageContext()
//Removesthecurrentbitmap-basedgraphicscontextfromthetopofthestack
UIGraphicsEndImageContext()
//Returnimage
returnfinalImage
}
rect为需要裁剪的区域,采用原图的坐标系。angle为需要旋转的角度,单位是度,正值表示图片顺时针方向旋转。具体实现的讲解见注释。
最后的图片可能超出原图区域,超出部分为透明。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持毛票票!