0

これは、画像をマスクするために行っていることです..これは正常に機能しています..私の問題は、self.imgView.imageがマスクされた画像ではないことです..マスクされた画像を取得するにはどうすればよいですか? ありがとう。

- (void) setClippingPath:(UIBezierPath *)clippingPath : (UIImageView *)imgView {

    CAShapeLayer *maskLayer = [CAShapeLayer layer];
    maskLayer.frame = self.imgView.frame;
    maskLayer.path = [clippingPath CGPath];
    maskLayer.fillColor = [[UIColor whiteColor] CGColor];
    maskLayer.backgroundColor = [[UIColor clearColor] CGColor];

    self.imgView.layer.mask = maskLayer;

}
4

2 に答える 2

0

Swift 5.4での方法は次のとおりです。

func image(from layer: CALayer?) -> UIImage? {
    UIGraphicsBeginImageContext(layer?.frame.size ?? CGSize.zero)

    if let context = UIGraphicsGetCurrentContext() {
        layer?.render(in: context)
    }
    let outputImage = UIGraphicsGetImageFromCurrentImageContext()

    UIGraphicsEndImageContext()

    return outputImage
}
于 2021-06-22T20:14:11.243 に答える