2

我用 GPUImage 库和以下代码创建了一个简单的绿屏:

import UIKit
import GPUImage


class CaptureViewController: UIViewController {

  var videoCamera:GPUImageVideoCamera?
  var filter:GPUImageChromaKeyFilter?

@IBOutlet weak var cameraView: GPUImageView!

override func viewDidLoad() {
    super.viewDidLoad()
    cameraView.backgroundColor = UIColor.clearColor()
    videoCamera = GPUImageVideoCamera(sessionPreset: AVCaptureSessionPreset640x480, cameraPosition: .Back)
    videoCamera!.outputImageOrientation = .Portrait;
    filter = GPUImageChromaKeyFilter()
    filter?.setColorToReplaceRed(0.0, green: 1.0, blue: 0.0)
    filter?.thresholdSensitivity = 0.4
    videoCamera?.addTarget(filter)
    filter?.addTarget(cameraView)
    videoCamera?.startCameraCapture()
}

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
}
}

现在我想将颜色从绿色更改为用户点击视频的位置。

Q : 如何从点击位置获取像素数据?

4

1 回答 1

2

您的问题是如何在视图中获取触摸点(覆盖 touchesEnded 并查看 touch.locationInView),或者如何在该点或附近读回像素值?

后者的答案是他的 GPUImage 项目有一个名为 RawDataTest 的示例,该示例向您展示了如何从 GPU 读取视图中任意像素的 RGBA 值。

https://github.com/BradLarson/GPUImage/tree/master/examples/iOS/RawDataTest/RawDataTest

于 2016-10-19T23:01:37.813 回答