我希望能够拍摄SurfaceView上显示的预览相机屏幕的快照。我知道它与onPreviewFrame()
方法有关,这会返回YUV格式的字节数组,但我不知道如何自己调用onPreviewFrame()方法。
我已将它与Camera.setPreviewCallback()
结合使用,但这是一个连续不断的生成图像的东西,我需要它在onClick()
上执行一次,几乎不拍照而不制作预览窗口停止。有什么想法吗?
答案 0 :(得分:2)
对于遇到类似问题的其他人,我通过在相机对象上使用setOneShotPreviewCallback()
方法解决了它,为我提供了byte[]
的图片信息。用它来创建一个YUV,然后压缩成位图或任何你需要的东西。
答案 1 :(得分:1)
将预览图像捕获到画布中并对其进行锁定。然后,您可以轻松保存到BitMap 有关示例代码,请参阅此文章以获取完整说明 http://www.anddev.org/using_camerapreview_to_save_a_picture_on_disk-t226.html