【发布时间】:2020-01-04 17:02:20
【问题描述】:
我正在制作CGImage
func otf() -> CGImage {
这是渐变上的贝塞尔蒙版。所以,
// the path
let p = UIBezierPath()
p.moveTo etc
// the mask
let m = CAShapeLayer()
set size etc
m.path = p.cgPath
// the layer
let l = CAGradientLayer()
set colors etc
l.mask = m
完成了。所以然后以通常的方式渲染UIImage ...
UIGraphicsBeginImageContextWithOptions(sz.size, false, UIScreen.main.scale)
l.render(in: UIGraphicsGetCurrentContext()!)
let r = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
但是。然后要返回,当然要转成CGImage
return r.cgImage!
(如果你使用类似 .. 的东西,同样的处理方式
UIGraphicsImageRenderer(bounds: b).image { (c) in v.layer.render(in: c) }
.. 你得到的是 UIImage,而不是 CGImage。)
似乎应该有更好/更优雅的方式 - 是否有一些方法可以更直接地“构建 CGImage”,而不是“构建 UIImage,然后转换强>”?
【问题讨论】:
标签: ios core-graphics swift5