我正在创建一个用于拍照并通过http POST发送到我的服务器的应用程序。由于我只需要在服务器端使用灰度数据,因此只需采用灰度图片而不必转换就可以了。
我正在使用Camera2 API,我在设置CaptureRequest.Builder
实例的属性方面遇到了问题。有了这个:
final CaptureRequest.Builder captureBuilder = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
captureBuilder.set(CaptureRequest.CONTROL_EFFECT_MODE, CaptureRequest.CONTROL_EFFECT_MODE_NEGATIVE);
需要负面照片。 但是这个:
final CaptureRequest.Builder captureBuilder = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
captureBuilder.set(CaptureRequest.CONTROL_EFFECT_MODE, CaptureRequest.CONTROL_EFFECT_MODE_MONO);
绝对没有。没有灰度。只是一张正常的照片。
答案 0 :(得分:1)
captureRequestBuilder.set(CaptureRequest.CONTROL_EFFECT_MODE,CameraMetadata.CONTROL_EFFECT_MODE_MONO);
您可以使用此`
答案 1 :(得分:0)
您需要查看设备上的supported effects列表,了解MONO是否真正受其支持。
如果你只关心亮度,你可以只捕获YUV_420_888缓冲区而不是JPEG,并且只将Y缓冲区发送到服务器。但是,这不会让你获得自动JPEG编码。
另请注意,通常在引擎盖下,JPEG图像以YUV编码;因此,如果您深入了解JPEG解码器库,您可以在转换为RGB之前获取图像数据,并简单地忽略色度通道。