#core-image #cgimage
#core-image #cgimage
Вопрос:
Я создаю UIGraphicsImageRenderer с размером, но получаю CGImage с другим размером??
пусть string = NSAttributedString (строка: «0», атрибуты: attributeDict) пусть size = string.size() print(размер) пусть traitCollection = UITraitCollection(displayScale: 1.0) пусть 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. Я проголосовал против, потому что вам нужно включить свой код, а не скриншот. Пожалуйста, это помогает другим в решении вашей проблемы — поисковые системы, как внутренние, так и внешние, могут искать размещенный код, а не скриншоты. Добавьте его (и дайте мне знать), и я с радостью изменю его на повышающий!
Ответ №1:
С UIGraphicsImageRenderer
ним связан масштаб, который определяет, как размер (в пунктах), с которым вы его создаете, преобразуется в реальные пиксели. По умолчанию этот масштаб такой же, как и у основного дисплея.
Вы можете изменить масштаб, инициализировав средство визуализации с другим форматом:
let traitCollection = UITraitCollection(displayScale: 1.0)
let rendererFormat = UIGraphicsImageRendererFormat(for: traitCollection)
let renderer = UIGraphicsImageRenderer(bounds: CGRect(origin: .zero, size: size), format: rendererFormat)
Комментарии:
1. Решена проблема.