我已经通过 OpenGL ES 2.0 着色器对相机预览应用了一些效果。接下来,我要保存这些效果图(灰度、负片……)
我在 onDrawFrame() 中调用 glReadPixels(),根据从 opengl 帧缓冲区读取的像素创建位图,然后将其保存到设备存储中。
但是,这样,我只是“快照”了相机效果预览。换句话说,保存的图像分辨率(例如:800*480)与 Camera.PictureCallback 拍摄的图像(例如:1920 * 1080)不同。
我知道预览大小可以通过 setPreviewSize() 改变,但最终不能等于图片大小。
那么,是否可以使用 glsl 着色器直接对 Camera.PictureCallback 获取的图像进行后期处理?或者还有其他方法可以实现相同的目标?
任何建议将不胜感激。谢谢。