由UIGraphicsImageRenderer创建的图像具有不同的大小

问题描述 投票:1回答:1

我创建了一个大小的UIGraphicsImageRenderer但是我得到了一个不同大小的cgImage?

enter image description here

let string = NSAttributedString(string:“0”,attributes:attributeDict)let size = string.size()print(size)let traitCollection = UITraitCollection(displayScale:1.0)let rendererFormat = UIGraphicsImageRendererFormat(for:traitCollection)

    let renderer = UIGraphicsImageRenderer(bounds: CGRect(origin: .zero, size: size), format: rendererFormat)
    let im = renderer.image{ (context) in
        UIColor.black.setStroke()
        let element = CGFloat(grayShade)/CGFloat(255)
        let color = UIColor(red: element, green: element, blue: element, alpha: 1)
        print(color)
        color.setFill()
        context.stroke(renderer.format.bounds)
        context.fill(renderer.format.bounds)
        let rect = context.format.bounds
        print(rect)
        string.draw(in: rect)
    }

    let cg = im.cgImage
    return cg!
core-image cgimage
1个回答
1
投票

UIGraphicsImageRenderer具有与之关联的比例,用于确定您创建它的大小(以点为单位)如何转换为实际像素。默认情况下,此刻度与主显示的刻度相同。

您可以通过使用不同的格式初始化渲染器来更改比例:

let traitCollection = UITraitCollection(displayScale: 1.0)
let rendererFormat = UIGraphicsImageRendererFormat(for: traitCollection)
let renderer = UIGraphicsImageRenderer(bounds: CGRect(origin: .zero, size: size), format: rendererFormat)
© www.soinside.com 2019 - 2024. All rights reserved.