ios 实时滤镜

ios 实时滤镜

ID:47105267

大小:26.60 KB

页数:6页

时间:2019-08-04

ios 实时滤镜_第1页
ios 实时滤镜_第2页
ios 实时滤镜_第3页
ios 实时滤镜_第4页
ios 实时滤镜_第5页
资源描述:

《ios 实时滤镜》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、iOS编程高性能之路-GPU着色器实现实时滤镜作为智能机照相和摄像功能无疑是其重要的功能,从比较早期使用实时滤镜的path到后期迎头赶上的instagram,他们出彩了滤镜效果和流畅的性能无疑给软件增色不少,而其中最大的功臣就要归功于opengles2.x之后引入的着色器了。Ka&lYY

2、{X3A[)Ot[y!ce如何取得视频数据?>PI~zX3nP取得照相时的图片数据加入FrameworkAVFoundation8nsZw,;k_GuVp:p_session=[[AVCaptureSessionalloc]init];nZ=F_]tvk;_videoOutput=[[[AVCaptureVideoDataOutputalloc]init]autorelease];rK>[Ly8[J1/b15Guif([_sessioncanAddOutput:_videoOutput]){wzTEg=i5[_sess

3、ionaddOutput:_videoOutput];Miy

4、50aa}Vyn4T1Iv/CnMTM~[_videoOutputsetSampleBufferDelegate:selfqueue:videoCaptureQueue];Dc6M"z+Y!bEfWII`S[_sessions

5、tartRunning];X&uT!qFd)$az

6、F:p`didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer-OF_eEMfromConnection:(AVCaptureConnection*)connection{+-

7、eu)sO...O

8、'uVy$OSStatuserr=CMBufferQueueEnqueue(previewBufferQueue,sampleBuffer);Z~G!V-Rif(!err){=l

9、63dispatch_async(dispatch_get_main_queue(),^{1^:ZGC1jCMSampleBufferRefsbuf=(CMSampleBufferRef)CMBufferQueueDequeueAndRetain(previewBufferQueue);Y_>(f)2]U/HbDT[});)z!#A}Y=@

10、PoXj(d...PZ~}c0^i<}k:]WK]F[kYflz)nI,9^iK7拿到sbuf之后我们就可以通过以下的方法来获取图片的首地址^2P(l>f/~iFAICVPixelBufferRefpixelBuffer=CMSampleBufferGetImageBuffer(sampleBuffer);EUOw^&V`~qJW$CVPixelBufferLockBaseAddress(pixelBuffer,0);:E`vx[J&3bsRAHtintlen=CVPixelBufferGetDataSize(pixe

11、lBuffer);m='0PX#EmsiIWVt!$UInt8*pixel=(UInt8*)CVPixelBufferGetBaseAddress(pixelBuffer);R.0vn

12、yhxNBFO_render(pixel,len)//滤镜函数ZV8mcxki<^2&80这样其实就可以简单的实现照相时候的实时滤镜,当然作为高性能的标题,肯定实现不会这么简单,大家可以尝试一下这个方法的效果,我之前尝试的时候原本60帧左右的摄像,对rgb某个单通道操作影响不大,但是一旦操作到三个通道,降帧就很明显,更不用说在摄像时同时还

13、要录音了。这时我们要解决这个问题就需要我们下一节来认识着色器。认识着色器用过opengl的同学对着色器应该不会陌生,但对与iOS终端设备的开发者,对于图形图像有着深入了解的人不多,本人也只是个初学者,对于opengles2.x才引入的着色器也是初步认识,WWDC的专题讲座有一节就是讲ope

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。