我使用了 GPUImage 框架,而在 iPad 中运行 SimplePhotoFilter 的示例代码(我使用了 GPUImageSketchFilter)时,过滤后的图像上会出现一些点,如下所示:
这是由于 iOS 5.x 纹理缓存中的一个已知错误,我不久前提交了一个错误报告。通常,它仅在使用带有 AVCaptureStillImageOutput 的 AVCaptureSessionPresetPhoto 预设以外的其他内容时才会发生,但似乎在某些条件下该预设也会发生这种情况。
鉴于 NDA,我不能说这是否已在 iOS 6.0 中得到修复,但请尝试使用测试版运行它并亲自查看。
作为 iOS 5.x 的解决方法,您可以编辑+supportsFastTextureUpload
GPUImageOpenGLESContext 中的方法以始终返回 NO。这将禁用框架中的纹理缓存支持,但可能会导致图像处理速度变慢并在拍照时消耗更多内存。