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为需要旋转的角度,单位是度,正值表示图片顺时针方向旋转。具体实现的讲解见注释。
最后的图片可能超出原图区域,超出部分为透明。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持毛票票!