我有这个 PDF,我正在将其转换为
UIImage
并在 Image
中渲染:
我需要使该图像适合我的应用程序的深色配色方案,因此我希望实际地图变为黑色/深灰色,但保持颜色不变。
如果我在
ZStack
中叠加两个图像并使用混合模式和颜色反转,我可以非常接近所需的结果:
ZStack {
Image(uiImage: self.mapImage!)
.resizable()
.scaledToFill()
.colorInvert()
.saturation(0)
.brightness(0.2)
Image(uiImage: self.mapImage!)
.resizable()
.scaledToFill()
.blendMode(.color)
}
但是正如你所看到的,黄色变成了深绿色。
在 Affinity Design 中使用颜色调整和混合模式时,我发现一种组合可以产生相当好的结果,除了一些难以阅读的文本:
我的问题是我在 Swift 中找不到“添加”混合模式,有
plusDarken
和 plusLighten
但它们做完全不同的事情。
如何使用 Swift/SwiftUI 实现结果?
您可以使用 SwiftUI 的 ColorBurnBlendMode 混合模式进行一些额外的调整。 迅速
Image(uiImage: self.mapImage!)
.resizable()
.scaledToFill()
.colorInvert()
.saturation(0)
.brightness(0.2)
.blendMode(.colorBurn) // Use ColorBurnBlendMode
Image(uiImage: self.mapImage!)
.resizable()
.scaledToFill()
.colorMultiply(.black) // Multiply by black to make it darker
说明:
将两个图像紧密结合在一起,如果不是你想要的那样。