我正在尝试使用 Android Camera2 APIs
在我的 Nexus 5x 上开发,并且我正在使用 googlesamples android-Camera2Basic 示例。
我的问题是 JPEG 图片的质量太低,而且它们的大小比我使用手机相机应用程序拍摄的常规图片要小得多。
根据 Google 文档,CaptureRequest 和 CaptureResult 中都应该有一个名为 JPEG_QUALITY
的关键字:
JPEG_QUALITY
API 级别:21+
关键字:JPEG_QUALITY
最终 JPEG 图像的压缩质量。
85-95 是典型的使用范围。
有效值范围:
1-100;越大则品质越高。
此关键字对所有设备都可用。
然而,当我询问可用的关键字时,关键字 JPEG_QUALITY
不可用,因此我不知道当前使用的 JPEG
压缩质量是多少,以及如何更改它。
下面是我的代码:
CameraCaptureSession.CaptureCallback CaptureCallback
= new CameraCaptureSession.CaptureCallback() {
@Override
public void onCaptureCompleted(@NonNull CameraCaptureSession session,
@NonNull CaptureRequest request,
@NonNull TotalCaptureResult result) {
//_TEST_DEBUG
List<CaptureRequest.Key<?>> requestKeys = request.getKeys();
List<CaptureResult.Key<?>> resultKeys = result.getKeys();
requestKeys和resultKeys有许多键,包括JPEG_ORIENTATION
,但没有JPEG_QUALITY
键。
我做错了什么?为什么找不到如何更改JPEG
压缩质量的方法?
谢谢, Guy
JPEGsnoop
的帮助发现了它……如果可以的话,请用您的设备试一试。谢谢! - Sirop4ikcaptureBuilder.set(CaptureRequest.JPEG_QUALITY, (byte)90);
时,图像质量仍然很低。我使用其他应用程序,它的质量很好。 - user3051460