android - 使用Android的相机拍摄灰度照片2

标签 android grayscale android-camera2

我正在创建一个用于拍照并通过 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);

什么都不做。没有灰度。只是一张普通的图片。

最佳答案

您需要查看 supported effects 的列表在您的设备上,查看它是否真的支持 MONO。

如果您只关心亮度,您可以只捕获 YUV_420_888 缓冲区而不是 JPEG,并且只将 Y 缓冲区发送到服务器。不过,这不会让您自动进行 JPEG 编码。

另请注意,通常在引擎盖下,JPEG 图像以 YUV 编码;因此,如果您深入了解 JPEG 解码器库,您可能能够在转换为 RGB 之前获取图像数据,并简单地忽略色度 channel 。

关于android - 使用Android的相机拍摄灰度照片2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43964431/

相关文章:

java - 我应该如何替换可绘制对象?

java - 从 ListView 中选择一个项目

android - 如何以编程方式为 Android 上的 SIP 打开/关闭 "Receive incoming calls"

PHP Imagick - 将图像转换为灰度(非常糟糕的结果)

android - 黑白模式负片滤镜

Android CoverFlow 显示文本而不是图像

wolfram-mathematica - Mathematica RGB转灰度的详细计算

java - 如何改进Java中的反转+灰度运算符?

android - Camera2 API 与外部 USB 摄像头

Android Camera2 API 预览有时会失真