라이브 카메라 피드가 애니메이션 정적 오버레이로 그레이 스케일로 표시되도록하려고합니다.GPUImage 오버레이 된 애니메이션이 적용된 그레이 스케일 라이브 카메라 피드
그레이 스케일이 작동하기는 쉽지만 이미지를 오버레이하여 알아내는 데 어려움을 겪고 있습니다.
어떤 도움이나 알려 주시면 오버레이 애니메이션을 사용하는 것은 아무 소용이 없습니까? 감사합니다. .
그레이 스케일 코드 :
private var videoCamera: GPUImageVideoCamera?
private var videoView: GPUImageView?
private var greyscaleFilter: GPUImageGrayscaleFilter?
videoCamera = GPUImageVideoCamera(sessionPreset: AVCaptureSessionPreset352x288, cameraPosition: .Back)
videoView = GPUImageView(frame: CGRect(x: 0, y: 0, width: 352, height: 288))
view.addSubview(videoView!)
greyscaleFilter = GPUImageGrayscaleFilter()
greyscaleFilter?.addTarget(videoView)
videoCamera?.addTarget(greyscaleFilter);
videoCamera?.startCameraCapture()
편집 : 나는, 내가 GPUImage와 함께 제공되는 예제를 사용하고 있습니다에서 현재 해요하지만 아직 작동하지 않는 이유를 볼 수있는 곳입니다. (overlay.jpg는 필자가 실제로 필요로하는 미묘한 정적 대신 블렌드가 더 분명해질 것이라고 생각하는 테스트에 사용하는 이미지입니다.) 이 코드는 그레이 스케일 비디오로 나타나며, 블렌드 필터는 아무 것도하지 않는 것처럼 보입니다.
videoCamera = GPUImageVideoCamera(sessionPreset: AVCaptureSessionPreset352x288, cameraPosition: .Back)
videoView = GPUImageView(frame: CGRect(x: 0, y: 0, width: 352, height: 288))
view.addSubview(videoView!)
greyscaleFilter = GPUImageGrayscaleFilter()
videoCamera?.addTarget(greyscaleFilter)
greyscaleFilter?.addTarget(videoView)
blendFilter = GPUImageOverlayBlendFilter()
videoCamera?.addTarget(blendFilter)
inputImage = ImageCache.loadImage(named: "overlay.jpg")
blendImage? = GPUImagePicture(image: inputImage)
blendImage?.addTarget(blendFilter)
blendImage?.processImage()
blendFilter?.addTarget(videoView)
videoCamera?.startCameraCapture()