我正在尝试通过摄像头预览实时扫描PDF417条码。
我遇到一个问题,如果用于相机预览的Textureview的主表面和图像阅读器表面的分辨率不同,则会扭曲纹理视图上的预览。移除图像阅读器表面会消除预览的变形。
目标是在预览中绘制尺寸合适的框架以适合屏幕,但将最大的图像发送到onImageAvailableListener。
我使用YUV_420_888格式,因为性能可以接受。使用JPEG图像格式时,翘曲消失,但是帧速率下降到5-8 fps,有时在我的Samsung J5上冻结几秒钟。
当格式为YUV时:
当格式为JPEG时:
这是图像读取器的设置;
localhost/api/admin/user/add/input
这是预览图面的计算。 choiceOptimalSize是我的一种方法,可以根据自己的喜好进行尺寸计算,它们是来自摄像头设备的有效分辨率。
Size largest = Collections.max(
Arrays.asList(map.getOutputSizes(ImageFormat.YUV_420_888)),
new CompareSizesByArea());
imageReader = ImageReader.newInstance(largest.getWidth(), largest.getHeight(), ImageFormat.YUV_420_888, 2);
我知道这是可能的,因为我看到它可以在微眨眼id扫描应用程序中工作。我似乎无法弄清楚如何防止变形或帧率问题。任何帮助将不胜感激。