【问题标题】:CWAC Camera - What's the best way to customize the ImageCleanupTask?CWAC Camera - 自定义 ImageCleanupTask 的最佳方式是什么?
【发布时间】:2014-10-11 23:29:05
【问题描述】:

我正在使用cwac-camera 库通过自定义应用内相机拍照。

我正在覆盖 SimpleCameraHost 中的 adjustPreviewParameters 并设置 JPEG 质量。

@Override
public Parameters adjustPreviewParameters(Parameters parameters) {
    super.adjustPreviewParameters(parameters);
    parameters.setJpegQuality(80);
    return (parameters);
}

不幸的是,根据this question,setJpegQuality 方法不适用于某些设备(例如 S3)。

我可以看到 cwac-camera ImageCleanupTask always saves the manipulated image at 100% JPEG quality

自定义 ImageCleanupTask 的最佳方式是什么?

我应该在PictureTransaction 中公开一个 setJpegQuality 方法吗?还是我们想要一个更通用的解决方案(比如允许注入 ImageCleanupTask)?

【问题讨论】:

    标签: android android-camera commonsware-cwac cwac-camera


    【解决方案1】:

    我可以看到 cwac-camera ImageCleanupTask 总是以 100% JPEG 质量保存处理后的图像。

    理想情况下,这将是可配置的。图书馆可以做很多事情。 :-)

    自定义 ImageCleanupTask 的最佳方式是什么?

    如果您的意思是“如何获得其中的 JPEG 百分比?”,请增加 PictureTransaction

    我应该在 PictureTransaction 中公开一个 setJpegQuality 方法吗?

    我会使用 jpegQuality(),因为 PictureTransaction 使用 builder/fluent API 模式。

    请注意,通过此更改,您可能希望从现有代码中删除 parameters.setJpegQuality(80);。否则,图像将降级两次,一次是在捕获时(对于支持它的设备),一次是在图像写入磁盘时,这可能不是您想要的。

    【讨论】:

    • 感谢您的帮助。这是我在 fork 中为支持这一点所做的代码更改:github.com/cookbrite/cwac-camera/commit/… 如果您希望我在您的存储库中添加问题,请告诉我。我也可以发送一个拉取请求,尽管我可能已经颠覆了 jpegQuality 字段,以至于你不想要一个。 :-)
    • @DanJ:我继续向自己提交了enhancement request。您的实现似乎很好。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-11
    • 2022-07-03
    • 1970-01-01
    • 2016-01-30
    • 1970-01-01
    • 2021-06-09
    相关资源
    最近更新 更多