我想知道是否可以保存first frame
从相机预览,在SurfaceView
. 在我的活动中,我目前已经实现了所有SurfaceHolder.Callback
方法。当我调用startPreview
相机对象并且takePicture
回调正确执行时,但我需要更快地拍摄和保存图片,因此拍摄预览的第一个可见帧将非常有用。我能做些什么?
任何建议将不胜感激。
问问题
696 次
1 回答
0
它可能看起来非常简单,但我会做这样的事情来将第一帧保存到Bitmap
.
mCamera.setPreviewCallback(new PreviewCallback() {
public void onPreviewFrame(byte[] data, Camera camera) {
if (image == null) {
out = new ByteArrayOutputStream();
yuvImage = new YuvImage(data, ImageFormat.NV21, camera
.getParameters().getPreviewSize().width, camera
.getParameters().getPreviewSize().height, null);
yuvImage.compressToJpeg(new Rect(0, 0, camera
.getParameters().getPreviewSize().width, camera
.getParameters().getPreviewSize().height), 0,
out);
imageBytes = out.toByteArray();
image = BitmapFactory.decodeByteArray(imageBytes, 0,
imageBytes.length);
}
}
});
于 2013-04-18T13:55:10.820 回答