1

我打电话后: cameraSource.takePicture(null, pictureCallback); 在回调中:

private CameraSource.PictureCallback pictureCallback = new CameraSource.PictureCallback() {
                @Override
                public void onPictureTaken(byte[] bytes) {
                    try {
        Log.d(DEBUG_TAG, "On picture taken.");
                        if (bytes == null) {
                            return;
                        }
                        Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
                        Glide.with(this).load(bitmap).into(capturedImg);
                    }catch (Exception ex){
                        ex.printStackTrace();
                        Log.e("PictureTaken",ex.toString());
                }
            };

创建位图时,分辨率非常低 (320x240)。该相机能够拍摄更高分辨率的照片。来自普通相机应用程序的大约 1600x1200。但是使用普通的相机 api 会为同一相机返回 1280x720 的分辨率。

因此,仅使用 Mobile Vision API 中的 CameraSource 会返回分辨率非常低的图像。但这并不一致。它在三星平板电脑上返回高分辨率。但是,当我在 Lenovo 选项卡 3 上使用相同的代码时,CameraSource 返回一个分辨率非常低的图像。可能是什么问题和可能的解决方法?

4

1 回答 1

0

CameraSource 类是开源的,至少有一些版本,https://github.com/googlesamples/android-vision/blob/master/visionSamples/barcode-reader/app/src/main/java/com/google/android /gms/samples/vision/barcodereader/ui/camera/CameraSource.java。您可以自由扩展它以设置更好的图片尺寸。

于 2018-01-10T20:16:00.580 回答