2
我使用一些CIFilter
來做一些圖像處理。我發現UIImageView
太慢,無法實時顯示輸出圖像。我跟着documentation並且建了GLKView
。現在的表現是完美的,但旋轉時圖像呈黑色矩形。CIImage的背景顏色
如何設置顏色爲背景(此處爲綠色)或透明?
這裏是繪製代碼片段。我根本不熟悉圖形領域。
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()
}
}
我正在做類似的事情,添加上述內容後仍然存在問題。我正在使用CIAffineTransform過濾器來旋轉CIImage並獲取黑色背景。我的CIContext是從EAGLContext創建的,我將最終的圖像繪製到最終呈現爲視頻幀的CVPixelBuffer中。我已經添加了上面的OpenGL調用,但旋轉圖像外部的區域仍然是黑色的。任何想法可能需要使背景透明的其他設置?謝謝! – kleezy