繁体   English   中英

是否可以在 SwiftUI 中应用灰度图像作为视图蒙版?

[英]Is it possible to apply a grayscale image as view mask in SwiftUI?

是否可以将视图.mask(...)修饰符与灰度图像一起使用。 我的意思是就像在 Photoshop 中使用图层蒙版一样。

虽然使用Image作为遮罩视图没有问题,但这会产生具有图像大小的简单矩形遮罩。 不考虑对图像内容进行掩蔽。

我想使用图像作为蒙版来应用复杂的不透明蒙版,例如此图像中的云

在此处输入图像描述

这里的关键是根据亮度将图像转换为使用 alpha - 一个完美的使用luminanceToAlpha()修饰符。

结果:

云纹理掩盖的红色背景上的文本

代码:

struct ContentView: View {
    var body: some View {
        Text("This is a red view with some text") // 1
            .padding(50)
            .background(Color.red)
            .mask { // 2
                Image("cloud") // 3
                    .resizable()
                    .aspectRatio(contentMode: .fit)
                    .frame(width: 350)
                    .luminanceToAlpha() // 4
                    .fixedSize() // 5
            }
    }
}

这个怎么运作:

  1. 文本被填充,周围是红色背景
  2. 我们在应用转换后屏蔽图像
  3. 图像首先调整大小以适合 350px 宽度
  4. 图像从灰度转换为 alpha
  5. 图像是固定大小的,这意味着它不受蒙版给定空间的影响

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM