2014-05-18 23 views
0

我正在嘗試構建用於錄製和播放視頻的用戶界面。 我正在使用GPUImage框架,並希望將遮罩過濾器和GPUImageiOSBlurFilter應用於相機。GPUImageVideoCamera帶有模糊和圓形蒙版過濾器

目標:

http://placekitten.com

我與如何讓自己的輸入(攝像機)在圈內經歷未經過濾的一切設置了掙扎,但模糊濾鏡圍繞中心掩蓋和應用相機輸出。

當我構建鏈是這樣的:

[_camera addTarget:_maskFilter]; 
[_maskPicture processImage]; 
[_maskPicture addTarget:_maskFilter]; 
[_maskFilter addTarget:_blurFilter]; 
[_blurFilter addTarget:_screen]; 

模糊濾鏡模糊視圖和麪罩切出來的視頻,但在所有中心的一切。 我的蒙版圖像是一個帶有白色圓圈的黑色矩形。

結果:

enter image description here

我如何構建的過濾器,幫助我實現在上面的圖片中的UI鏈 - 我要尋找一個輕推我應該走哪個方向。我目前正在查看GPUImageFilterGroups和視頻緩衝區,試圖繞過某些過濾器「路由」部分輸入,但我無法找到資源。

回答

1

您可以通過修改GPUImageGaussianSelectiveBlurFilter來輕鬆完成此操作。

獲取該過濾器的代碼並基於該過濾器創建新的過濾器。在新的過濾器中,將GPUImageGaussianBlurFilter替換爲GPUImageiOSBlurFilter。在片段着色器中,在最後的mix()命令內交換sharpImageColorblurredImageColor。這應該是爲了複製這種效果。

GPUImageGaussianSelectiveBlurFilter是一個過濾器組,用於遮蓋和模糊圓內的事物,並且想要反轉並使用更強大的GPUImageiOSBlurFilter,因此上述修改將會這樣做。這會比嘗試將掩碼作爲單獨的過濾器更高效,並且應該足夠簡單以便實現。

+0

謝謝布拉德,真正優雅的解決方案,它將使更多的可讀性和可維護的代碼! – RickiG