我正在使用 Camera2 api 进行静态图像捕获并将其保存到 jpeg 文件。问题是文件的大小始终 >900kb,即使我将图像尺寸设置为可用的最小尺寸并将 jpeg 质量降低。
这就是我将文件保存在 ImageAvailableListener
中的方式。这是一个 xamarin 项目,因此代码是用 c# 编写的。
image = reader.AcquireLatestImage();
ByteBuffer buffer = image.GetPlanes()[0].Buffer;
byte[] bytes = new byte[buffer.Remaining()];
buffer.Get(bytes);
output = new FileOutputStream(File);
output.Write(bytes);
output.Close();
文件大小应约为 20kb,那么为什么我无法获得小于 900kb 的文件大小?
最佳答案
您还可以降低捕获图像质量
mPreviewRequestBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
mPreviewRequestBuilder.set(CaptureRequest.JPEG_THUMBNAIL_QUALITY, (byte) 70); // add this line and set your own quality
关于android - Camera2 API - jpeg 捕获文件大小太大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49550684/