栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

当我在其上绘制文本时,NSImage会被调整大小

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

当我在其上绘制文本时,NSImage会被调整大小

这是另一种使用临时

NSView
方法绘制图像和文本并将结果缓存到新图像中的方法(代码为Swift 4)。您无需处理像素的好处

class ImageView : NSView  {    var image : NSImage    var text : String    init(image: NSImage, text: String)    {        self.image = image        self.text = text        super.init(frame: NSRect(origin: NSZeroPoint, size: image.size))    }    required init?(prer deprer: NSCoder) { fatalError() }    override func draw(_ dirtyRect: NSRect) {        let font = NSFont.boldSystemFont(ofSize: 18)        let textRect = CGRect(x: 5, y: 5, width: image.size.width - 5, height: image.size.height - 5)        image.draw(in: dirtyRect)        text.draw(in: textRect, withAttributes: [.font: font, .foregroundColor: NSColor.white])    }    var outputImage : NSImage  {        let imageRep = bitmapImageRepForCachingDisplay(in: frame)!        cacheDisplay(in: frame, to:imageRep)        let tiffData = imageRep.tiffRepresentation!        return NSImage(data: tiffData)!    }}

要使用它,初始化一个视图

let image = ... // get some imagelet view = ImageView(image: image, text: "Sample Text")

并获得新的形象

let imageWithText = view.outputImage

注意:

根本不使用段落样式,但是如果要创建可变的段落样式,只需编写

let textStyle = NSMutableParagraphStyle()


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/391081.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号