安卓:支持原始图像回调的设备

7
我正在进行一些图像处理,需要原始图像数据。但不幸的是,根据文档,这是可选的,取决于供应商。
我已经能够在LG Optimus Maha(mac/lu3000) android dev上获取原始图像,市场上是否有其他设备支持它?
不支持此功能的设备(来源-我的实验+google Issue 10910: Not able to Capture Raw Images):
- Motorola DroidX with Android 2.2.1 - Samsung Galaxy - HTC Desire with Android 2.2 - Nexus S - Nexus One 如果有人有不同的设备并可以尝试,请告诉我,那将是太好了。
关于为什么回调不受支持的更多信息,请点击这里

你尝试过使用startPreview()和setPreviewCallback()代替takePicture()吗? - olivierg
当然,预览分辨率会更低,因为这只是一个预览。但是,就像你提到的图像处理一样,我想你可能对特征提取、图像分析等方面有兴趣。在这种情况下,质量和/或分辨率可能不是关键因素。 - olivierg
你说得很对,是的,特征提取和图像分析可以在较小的图像上完成。我想我表达不清楚,我的最终目标需要在分辨率为2M的图像上进行。有什么办法可以做到这一点吗?我唯一想到的解决方法似乎是解码压缩图像,然后使用原始图像,但这将会丢失相当多的信息...... - bluefalcon
我也在考虑同样的事情。希望将质量设置为100能够让JPEG编码器进行无损压缩。但实际上我真的想避免这一步骤...不管怎样,非常感谢! - bluefalcon
不客气!感谢我们的小讨论,让我能够想出一个答案 :) - olivierg
显示剩余2条评论
1个回答

6
你列出的设备是主要设备。如果这些设备不支持原始图像,则会影响相当大的市场份额。我没有精确的数字,但根据我的市场统计数据和一年来收到的邮件,我认为至少有30%的用户受到影响。
此外,它不仅是一个重要的市场份额,而且还是目前最强大的设备之一。恰好是那些高级用户手中的设备。如果我告诉你我的感觉,那就是50%的应用购买者(不一定是设备的50%),但这只是一种直觉。
因此,我认为您需要能够很好地处理JPEG数据,通过在图像处理之前实时解码来优化JPEG回退。如果您担心质量,请尝试Camera.Parameters.setJpegQuality()
此外,我不确定您为什么要查找设备列表。也许是为了您的个人/商业统计数据,但如果是关于兼容性的话,最好在首次访问相机时动态地发现是否支持原始支持,并将其缓存,只要某些android.os.Build常量不发生变化即可。
话虽如此,忘记原始图像,仅依赖JPEG可能会简化您的流程并使测试更加容易。这也值得考虑。我认为我会选择这条路,因为如果原始支持很少,那么它不会被许多应用程序使用,测试不足,因此“原始”可以是任何东西。 JPEG非常常用,因此经过了适当的测试,这很重要。

但我仍在寻找设备列表.. :) - bluefalcon
感谢您接受我的答案。在某个时间点,我和其他几位(音频)开发人员想要创建一个应用程序来收集设备音频特性的统计信息。这是一个从市场上安装的应用程序,一些用户可能会发现它对了解自己的系统更有帮助。该应用程序还会自动将特性发送到服务器,以帮助我们开发人员处理大规模的“碎片化”。在某个时候,我也考虑过分析视频支持等等...而在您的情况下,那将是图像格式。没有太多时间开始这个项目,但您可以考虑这个想法。 - olivierg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接