本文介绍了数据字节数组大小onPictureTaken和previewFrame不同的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
为什么数据字节数组大小onPictureTaken(字节[]数据,摄像头摄像头)和previewFrame(字节[]数据,摄像头摄像头)不同。前者有原始图像,因此给了我一个干净的形象,后者给了我一个像素化图像。我不使用onPictureTaken,因为它不会触发有时。
如果我的图像尺寸是1600×1400的屏幕尺寸为800×480
onPictureTaken给了我1600×1400
和
在previewFrame给了我800×480
这是我的code:
mCamera.setOneShot previewCallback(新相机。previewCallback(){
@覆盖
在previewFrame(字节[]数据,相机摄像头){公共无效
Camera.Parameters参数= camera.getParameters();
INT格式= parameters.get previewFormat();
// YUV格式需要更多的转换
如果(格式== || ImageFormat.NV21格式== || ImageFormat.YUY2格式== ImageFormat.NV16){
。INT W = parameters.get previewSize()宽度;
。INT H = parameters.get previewSize()高度;
//获取YUV图像
YuvImage yuv_image =新YuvImage(数据,格式,W,H,NULL);
}
我一直坚持这个问题的一个星期。
P.S。 - 在负面评价的情况下,请说明理由。
解决方案
Because they are different images with different resolutions in different encodings. It would be a minor miracle if they were the same size.
Preview frames are generally of lower quality, because they need to be captured at a high rate of speed.
While I have encountered many problems with the camera APIs, that is not one of them.
You specify the preview resolution in setPreviewSize()
on Camera.Parameters
.
这篇关于数据字节数组大小onPictureTaken和previewFrame不同的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!