iOS에서 GPUImage를 사용하고 있습니다. GPUImageTransformFilter를 사용하여 GPUImagePicture를 변형 (스케일링)하고 비디오에 블렌딩하는 데 문제가 있습니다.GPUImage - 블렌딩 크기를 맞추기 위해 GPUImageTransformFilter 일치
overlayImage = [[GPUImagePicture alloc] initWithImage:[UIImage imageNamed:@"Sticker"] smoothlyScaleOutput:YES];
blendFilter = [GPUImageAlphaBlendFilter new];
transformFilter = [GPUImageTransformFilter new];
// [transformFilter forceProcessingAtSize:?????];
transformFilter.affineTransform = CGAffineTransformMakeScale(0.2f, 0.2f);
[overlayImage addTarget:transformFilter];
[videoCamera addTarget:blendFilter];
[overlayImage addTarget:blendFilter];
[overlayImage processImage];
[videoCamera startCameraCapture];
내가 갖는 잘못된 결과는 이미지가 해제 변환을 보여줍니다이다 - 변환 필터가 적용되지 않았던 것처럼, 전체 크기로 여전히.
변환 된 GPUImagePicture가 블렌드 필터의 다른 내용과 정확히 같은 크기로 처리되어야합니까?
그렇다면 어떻게해야합니까? forceProcessingAtSize를 사용해야합니까? 그리고 videoCamera의 세션과 같은 것을 쿼리하여 크기를 얻을 수 있습니까? forceProcessingAtSize를 AVCaptureSessionPreset, 640x480 크기로 설정하려고 시도했지만 도움이되지 않았습니다.
감사
답변 해 주셔서 감사합니다. GPUImage를 좋아합니다! 변환 필터의 대상으로 블렌드 필터를 추가 할 때 발생하는 문제는 전체 출력이 흰색이었고 스틸 이미지를 처리 할 때 transformfilter.addTarget을 수행하지 않는 다른 코드 예제를 보았 기 때문에 난 그냥 변환 필터에 대상을 추가하여 잘못된 일을하고 있다고 생각. – Cloov