Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android Camera2 API JPEG_QUALITY不可用大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用 Android Camera2 API处理我的Nexus 5x,而我正在使用 googlesamples android-Camera2Basic

我的问题是JPEG图像的质量太低,而且它的尺寸远小于我用手机相机应用拍摄的常规图像.

根据谷歌文档,Capturerequest和CaptureResult中都应该有一个关键的JPEG_QUALITY:

但是,当我要求可用的键时,JPEG_QUALITY键不可用,所以我不知道如何知道我目前使用的JPEG压缩质量是什么以及如何更改它.

我在里面做的代码

CameraCaptureSession.CaptureCallBACk CaptureCallBACk
                = new CameraCaptureSession.CaptureCallBACk() {

            @Override
            public void onCaptureCompleted(@NonNull CameraCaptureSession session,@NonNull Capturerequest request,@NonNull @R_146_10586@lCaptureResult result) {


                //_test_DEBUG
                List<Capturerequest.Key<?>> requestKeys = request.getKeys();
                List<CaptureResult.Key<?>> resultKeys = result.getKeys();

requestKeys& resultKeys有许多键,包括JPEG_ORIENTATION但不包含JPEG_QUALITY键.

知道我做错了什么吗?
为什么我找不到如何更改JPEG压缩质量?

谢谢,
家伙

解决方法

我通过在Android 5.1 Lollipop上使用Tesco Hudl 2平板电脑将其添加为googlesamples android-camera2Basic中的Capturerequest.builder的密钥,从而提高了JPEG质量.

JPEG质量在Camer2BasicFragment的captureStillPicture()@L_607_8@中设置,如下所示:

// This is the Capturerequest.builder that we use to take a picture.
        final Capturerequest.builder captureBuilder =
                mCameraDevice.createCapturerequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
        captureBuilder.addTarget(mImageReader.getSurface());

        //Set the JPEG quality here like so
        captureBuilder.set(Capturerequest.JPEG_QUALITY,(bytE)90);

我希望这有帮助.

大佬总结

以上是大佬教程为你收集整理的Android Camera2 API JPEG_QUALITY不可用全部内容,希望文章能够帮你解决Android Camera2 API JPEG_QUALITY不可用所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。