Я пытаюсь получить UIImage
маски, которую я применил к UIImageView
.
Я добавляю маску, используя UIBezierPath
, и хочу, чтобы фактический маскированный слой обозначался UIImage
, а не все изображение.Думайте об этом как обрезать.
Я обрезаю изображение, используя:
func cropImage() {
shapeLayer.fillColor = UIColor.black.cgColor
viewSource.imageView.layer.mask = shapeLayer
viewSource.imageView.layer.masksToBounds = true
UIGraphicsBeginImageContextWithOptions(viewSource.imageView.bounds.size, false, 1)
viewSource.imageView.layer.render(in: UIGraphicsGetCurrentContext()!)
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
self.completionObservable.onNext(newImage)
}
Это в конечном итоге дает мне замаскированное изображение поверх старых измерений (начальная ширина imageView ирост).Но я хочу иметь только маскированное изображение, исключая белый фон вокруг них.
Экраны выглядят так: