首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用UIGraphicsImageRenderer旋转图像?

使用UIGraphicsImageRenderer旋转图像?
EN

Stack Overflow用户
提问于 2016-08-23 05:39:29
回答 3查看 3.4K关注 0票数 3

UIGraphicsImageRenderer是在iOS 10中新引入的。我想知道是否有可能用它来旋转UIImage (任何自定义角度)。我知道有CGContextRotateCTMclassic way

EN

Stack Overflow用户

发布于 2020-07-10 20:29:08

基于@reza23的答案。你不需要调用UIGraphicsGetCurrentContext,你可以使用渲染器的上下文。

代码语言:javascript
运行
复制
extension UIImage
{
    public func rotate(angle:CGFloat)->UIImage
    {
        let radians = CGFloat(angle * .pi) / 180.0 as CGFloat
        
        var newSize = CGRect(origin: CGPoint.zero, size: self.size).applying(CGAffineTransform(rotationAngle: radians)).size
        
        // Trim off the extremely small float value to prevent core graphics from rounding it up
        newSize.width = floor(newSize.width)
        newSize.height = floor(newSize.height)
        let renderer = UIGraphicsImageRenderer(size:newSize)
        
        let image = renderer.image
        { rendederContext in
            
            let context = rendederContext.cgContext
            //rotate from center
            context.translateBy(x: newSize.width/2, y: newSize.height/2)
            context.rotate(by: radians)
            draw(in:  CGRect(origin: CGPoint(x: -self.size.width/2, y: -self.size.height/2), size: size))
        }
        
        return image
    }
}
票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39089148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档