通过 CGImage 或 CIImage 旋转特定角度
创新互联建站主要从事成都网站设计、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务宝山,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220UIImage可通过CGImage或CIImage初始化,初始化方法分别为init(cgImage: CGImage, scale: CGFloat, orientation: UIImageOrientation)和init(ciImage: CIImage, scale: CGFloat, orientation: UIImageOrientation)
。通过UIImageOrientation的不同取值,可以使图片旋转90、180、270度。
用原图绘制
通过原图绘制实现旋转图片任意角度。可以先绘制红色背景,效果如下
static func rotateImage(_ image: UIImage, withAngle angle: Double) -> UIImage? { if angle.truncatingRemainder(dividingBy: 360) == 0 { return image } let imageRect = CGRect(origin: .zero, size: image.size) let radian = CGFloat(angle / 180 * M_PI) let rotatedTransform = CGAffineTransform.identity.rotated(by: radian) var rotatedRect = imageRect.applying(rotatedTransform) rotatedRect.origin.x = 0 rotatedRect.origin.y = 0 UIGraphicsBeginImageContext(rotatedRect.size) guard let context = UIGraphicsGetCurrentContext() else { return nil } context.translateBy(x: rotatedRect.width / 2, y: rotatedRect.height / 2) context.rotate(by: radian) context.translateBy(x: -image.size.width / 2, y: -image.size.height / 2) image.draw(at: .zero) let rotatedImage = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() return rotatedImage }
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。