首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Swift、Cocoa、Mac中旋转NSImage

在Swift、Cocoa、Mac中旋转NSImage
EN

Stack Overflow用户
提问于 2015-07-29 11:30:39
回答 5查看 6.5K关注 0票数 4

有没有一种在Mac应用程序中旋转NSImage的简单方法?还是用Swift设置从肖像到景观的方向?

我在玩CATransform3DMakeAffineTransform,但我不能让它工作。

代码语言:javascript
运行
复制
CATransform3DMakeAffineTransform(CGAffineTransformMakeRotation(CGFloat(M_PI) * 90/180))

这是我第一次使用转换。所以请对我耐心点:)也许我在用错误的方法.

有人能帮我吗?

谢谢!

EN

Stack Overflow用户

发布于 2019-04-03 15:12:44

下面是一个简单的Swift (4+)解决方案,用于绘制围绕中心旋转的图像:

代码语言:javascript
运行
复制
extension NSImage {
    /// Rotates the image by the specified degrees around the center.
    /// Note that if the angle is not a multiple of 90°, parts of the rotated image may be drawn outside the image bounds.
    func rotated(by angle: CGFloat) -> NSImage {
        let img = NSImage(size: self.size, flipped: false, drawingHandler: { (rect) -> Bool in
            let (width, height) = (rect.size.width, rect.size.height)
            let transform = NSAffineTransform()
            transform.translateX(by: width / 2, yBy: height / 2)
            transform.rotate(byDegrees: angle)
            transform.translateX(by: -width / 2, yBy: -height / 2)
            transform.concat()
            self.draw(in: rect)
            return true
        })
        img.isTemplate = self.isTemplate // preserve the underlying image's template setting
        return img
    }
}
票数 4
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31699235

复制
相关文章

相似问题

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