我有一个扩展程序可以将UIImage的各个角落变成圆角。此扩展程序很棒。我还想向图像添加笔触/边框。
之所以没有在UIImageView上执行所有这些操作,是因为图像的缩放比例/纵横比发生了变化,因此它需要对图像进行四舍五入,而不是imageView本身。
extension UIImage{
var roundedImage: UIImage {
let rect = CGRect(origin:CGPoint(x: 0, y: 0), size: self.size)
let border = CAShapeLayer()
border.path = CGPath(rect: rect, transform: nil)
border.lineWidth = 10
border.strokeColor = UIColor.red.cgColor
UIGraphicsBeginImageContextWithOptions(self.size, false, 1)
UIBezierPath(
roundedRect: rect,
cornerRadius: 40
).addClip()
self.draw(in: rect)
return UIGraphicsGetImageFromCurrentImageContext()!
}
}
我通过添加CAShapeLayer()
添加红色笔触取得了进步。只是无法弄清楚如何将其添加到roundedImage
的实际路径中。或者,即使这是正确的方法。
我如何创建一个UIImage扩展以在拐角处添加边框/笔触?
使用此扩展名
extension UIImage{
var roundedImage: UIImage {
let rect = CGRect(origin:CGPoint(x: 0, y: 0), size: self.size)
UIGraphicsBeginImageContextWithOptions(self.size, false, 1)
UIBezierPath(
roundedRect: rect,
cornerRadius: 40
).addClip()
self.draw(in: rect)
let context = UIGraphicsGetCurrentContext()
context?.setStrokeColor(UIColor.red.cgColor)
context?.setLineWidth(10)
context?.stroke(rect)
return UIGraphicsGetImageFromCurrentImageContext()!
}
}