Изображение, созданное UIGraphicsImageRenderer, имеет другой размер - PullRequest
0 голосов
/ 04 марта 2019

Я создаю UIGraphicsImageRenderer с размером, но я получаю cgImage с другим размером ??

enter image description here

let string = NSAttributedString (string:«0», атрибуты: attributeDict) let size = string.size () print (size) let traitCollection = UITraitCollection (displayScale: 1.0) let rendererFormat = UIGraphicsImageRendererFormat (для: 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!

1 Ответ

0 голосов
/ 04 марта 2019

С UIGraphicsImageRenderer связан масштаб, который определяет, как размер (в точках), с которым вы его создаете, преобразуется в фактические пиксели.По умолчанию этот масштаб такой же, как и на главном дисплее.

Вы можете изменить масштаб, инициализировав средство визуализации в другом формате:

let traitCollection = UITraitCollection(displayScale: 1.0)
let rendererFormat = UIGraphicsImageRendererFormat(for: traitCollection)
let renderer = UIGraphicsImageRenderer(bounds: CGRect(origin: .zero, size: size), format: rendererFormat)
...