为UIImage加上边框并添加边框-不是UIImageView

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

我有一个扩展程序可以将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扩展以在拐角处添加边框/笔触?

swift uiimage uibezierpath cgrect
1个回答
0
投票

使用此扩展名

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()!
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.