我想获得全分辨率(而不是压缩)图像数据,然后我可以进行一些图像处理。
据我所知,android api takePicture (shutter, raw, jpg) 可以做一些事情。但是我需要的不是压缩的 JPEG 数据,而是未压缩的图像数据。而且我知道原始回调不起作用我读过一些帖子。
我还找到了onPreviewFrame的api,从中得到的最大图片尺寸是1280*720(使用setPreviewSize),而我从相机捕获的原始图像的分辨率是1952*3264。
另外, Intent.putExtra(MediaStore.EXTRA_OUTPUT, uri) 可能会有所帮助,但 uri 的文件可能应该是压缩格式的 jpeg 文件。
但是有没有办法获得完整尺寸(与捕获的相同)和未压缩(不是 JPEG)图像数据?
takePicture() 的文档明确指出可以请求原始数据,但回调是可选的。目前,大多数设备不支持原始回调。这不足为奇:现代相机在硬件中执行 Jpeg 压缩,而相机和应用处理器之间的内存总线无法足够快地处理 24 MB 的原始数据(对于普通的 8 兆像素相机而言)。
避免使用预览回调而不是 takePicture():即使在相同的分辨率下,静态图片的图像质量也会更好。预览图像的自动对焦、稳定性、曝光甚至白平衡可能不精确。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)