2014-10-11 126 views
0

我正在使用cwac-camera庫通過自定義應用內相機拍照。CWAC相機 - 自定義ImageCleanupTask的最佳方式是什麼?

我重寫SimpleCameraHost中的adjustPreviewParameters並設置JPEG質量。

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

不幸的是,按照this question,所述setJpegQuality方法不能在某些設備(例如,S3)工作。

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

什麼是自定義ImageCleanupTask的最佳方式?

我應該在PictureTransaction中公開setJpegQuality方法嗎?或者我們想要一個更通用的解決方案(比如允許注入ImageCleanupTask)?

回答

1

我可以看到cwac-camera ImageCleanupTask總是以100%JPEG質量保存操縱圖像。

理想情況下,這是可配置的。圖書館理想地做很多事情。 :-)

什麼是自定義ImageCleanupTask的最佳方式?

如果您的意思是「如何獲得JPEG百分比?」,請增加PictureTransaction

我應該在PictureTransaction中公開setJpegQuality方法嗎?

我會做jpegQuality(),因爲PictureTransaction使用builder/fluent API模式。

請注意,通過此更改,您希望從現有代碼中刪除parameters.setJpegQuality(80);。否則,圖像將會降級兩次,一次是捕獲(對於支持它的設備),一次是將圖像寫入磁盤,這可能不是您想要的。

+0

感謝您的幫助。以下是我在fork中支持的代碼更改:https://github.com/cookbrite/cwac-camera/commit/65a0a2082194dfc8069f605f0191c43357bb0852讓我知道如果您希望我在回購中添加問題。我也可以發送拉請求,雖然我可能已經顛覆了jpegQuality字段太多,你想要一個。 :-) – 2014-10-13 19:18:20

+0

@DanJ:我繼續向我提交了一個[增強請求](https://github.com/commonsguy/cwac-camera/issues/228)。你的實現看起來很好。謝謝! – CommonsWare 2014-10-13 19:31:21

相關問題