我使用 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)
}
}
现在我想将颜色从绿色更改为用户点击视频的位置。
问:如何获取点击位置的像素数据?
最佳答案
您的问题是如何在 View 中获取触摸点(覆盖touchesEnded并查看touch.locationInView)或者如何读回该点处或周围的像素值?
后者的答案是 GPUImage 项目有一个名为 RawDataTest 的示例,该示例向您展示如何从 GPU 读取 View 中任意像素的 RGBA 值。
https://github.com/BradLarson/GPUImage/tree/master/examples/iOS/RawDataTest/RawDataTest
关于ios - 从 GPUImageVideoCamera 获取像素颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34880493/