【问题标题】:Android Camera Parameters setJpegQuality deprecated? Custom camera applicationAndroid 相机参数 setJpegQuality 已弃用?自定义相机应用
【发布时间】:2013-12-06 09:44:18
【问题描述】:

我正在为 Android 构建一个自定义相机应用程序。 Camera.Parameters API 包含类似 setPreviewSizesetPictureSize 的方法,它们运行良好。

但我正在尝试使用setJpegQuality(int) 参数:

    Camera cam = getCameraInstance();
    if(cam == null){
        setResult(INSTANCE_ERROR);
        finish();
    }

    params = cam.getParameters();
    params.setJpegQuality(jpegQuality); 
    cam.setParameters(params);

我正在 3 种不同的设备上测试我的应用程序:HTC Desire Z、Galaxy S2 和 Galaxy S4。

setJpegQuality 在 HTC (Android 2.2.1) 和 Galaxy S2 (4.1.2) 上运行,但在 Galaxy S4 设备 (4.2.2) 上运行失败。

所以我的问题是:此功能是否已弃用?有没有其他方法可以设置图片质量?在开发人员文档中,它似乎不是一个已弃用的功能,所以我有点困惑......

我也试过了

params.set("jpeg-quality", jpegQuality);

但它是一样的:(

感谢您的回答。

【问题讨论】:

  • 我是世界上第一个遇到此功能问题的人吗?
  • 我可能是第二个,但找不到解决方案。你找到一个 macTar 了吗?
  • 我在 S3 上看到了同样的问题。 setJpegQuality(80) 似乎在我的 Nexus 4 (4.4.4) 和 HTC Sensation (4.0.3) 上运行良好,但在 S3 上照片似乎仍然是全质量,导致文件大小增加 2 倍。
  • 能不能得到getJpegQuality()的值,怎么知道方法不行?请提供更多信息(logcat、调试转储值等)
  • 该功能似乎没有被弃用,但您可能面临制造商实施问题。如果您还没有尝试过,请尝试在设置质量之前停止预览,然后重新启动它。过去我遇到过相机“驱动程序”仅在启动时读取参数的问题。

标签: android camera android-camera android-version


【解决方案1】:

对于 S3 和 S4,您可以编写设备特定代码以减小文件大小。

如果你在 google 上搜索,Android 开发团队也提到这完全取决于制造商的实现 (https://code.google.com/p/android/issues/detail?id=8091)。相机参数和功能的实现完全取决于我认为使用的硬件。

我曾在我的一款应用中使用过运动传感器。此外,我还必须编写特定于设备的代码,才能在应用程序中获得所需的行为。

我知道这不是我们作为开发人员所期望的,但我相信我们,开发人员,可以解决任何问题。 :)

【讨论】:

    【解决方案2】:

    我将CWAC-Camera 库用于我的自定义相机。我分叉了主存储库,并在PictureTransaction 中添加了一个jpegQuality 参数:
    https://github.com/cookbrite/cwac-camera/commit/65a0a2082194dfc8069f605f0191c43357bb0852

    这可确保生成的图片始终被压缩到所需的质量。

    这种方法的一个缺点是它必须在应用程序代码中加载和压缩完整大小的图像文件,而在Camera.Parameters 上使用setJpegQuality 可能会更优化。

    【讨论】:

      【解决方案3】:

      抱歉,我最终没有看到答案 :) 我什至不再使用这个不起作用的参数了

      当我将图片保存为文件时,我找到了设置图片质量的解决方案:

      FileOutputStream fos = new FileOutputStream(finalFilePath);
      bmp.compress(Bitmap.CompressFormat.JPEG, jpegQuality, fos);
      

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-03-19
        • 1970-01-01
        • 1970-01-01
        • 2022-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多