gpt4 book ai didi

ios - 绘制 CIImage 的背景颜色

转载 作者:行者123 更新时间:2023-12-02 18:05:09 24 4
gpt4 key购买 nike

我使用一些CIFilter来进行一些图像处理。我发现 UIImageView 太慢,无法实时显示输出图像。我关注了documentation并构建了GLKView。现在性能很完美,但旋转时图像呈现为黑色矩形。

enter image description here

如何将该颜色设置为背景(在本例中为绿色)或透明?

这是绘图代码片段。我对图形领域一点也不熟悉。

private class ImageView: GLKView {

override init!(frame: CGRect, context: EAGLContext!) { // Called with `.OpenGLES3` context.
ciContext = CIContext(EAGLContext: context, options: [kCIContextWorkingColorSpace: NSNull()])
super.init(frame: frame, context: context)
}

private let ciContext: CIContext

private var image: CIImage? {
didSet {
setNeedsDisplay()
}
}

private override func drawRect(rect: CGRect) {

// Clear with `glClear`... Here is set color from `backgroundColor` (green) and cleared with it.

if image != nil {
ciContext.drawImage(image!, inRect: { /* returned computed rect */ }(), fromRect: image!.extent())
}
}

private override func layoutSubviews() {
super.layoutSubviews()
setNeedsDisplay()
}
}

最佳答案

您正在设置混合模式吗?

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBlendEquation(GL_FUNC_ADD);

检查这个link显示混合模式的视觉效果

如果您正在设置混合模式,您可以显示更多有关 drawRect 方法中发生的情况吗?

关于ios - 绘制 CIImage 的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30177214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com