Как замаскировать изображение и сделать белый прозрачным в Swift 3?

Итак, я написал код для маскировки изображения

func maskImage(image:UIImage, mask:(UIImage))->UIImage{

    let imageReference = image.cgImage!
    let maskReference = mask.cgImage!

    let imageMask = CGImage(maskWidth: maskReference.width,
                            height: maskReference.height,
                            bitsPerComponent: maskReference.bitsPerComponent,
                            bitsPerPixel: maskReference.bitsPerPixel,
                            bytesPerRow: maskReference.bytesPerRow,
                            provider: maskReference.dataProvider!, decode: nil, shouldInterpolate: true)

    let maskedReference = imageReference.masking(imageMask!)

    let maskedImage = UIImage(cgImage:maskedReference!)

    return maskedImage
}

Маска - это просто диагональная линия, половина экрана черная, а другая - белая.

Желаемый эффект состоит в том, чтобы иметь изображение под этим замаскированным изображением, чтобы половина изображения была одним изображением, а другая половина - другим изображением.

Однако я вижу, что когда я возвращаю CGImage, мое изображение верхнего слоя просвечивает везде, где моя маска черная, но вместо того, чтобы быть прозрачной, когда она на белом, она белая.

Как я могу сделать белые прозрачными? Благодарю.

0 ответов

Другие вопросы по тегам