【问题标题】:adjusting contrast in iOS photo在 iOS 照片中调整对比度
【发布时间】:2013-03-05 06:05:01
【问题描述】:

我们的 iOS 6 应用程序(通常由商业用户在第 4 代 iPod Touch 上运行,但有时也可以在其他 iOS 设备上运行)具有通过UIImagePickerController 实现的拍照功能。

有时在某些光照条件下使用该应用程序拍摄的照片对比度太高,照片明亮部分的细节会被冲掉。图片很少对比度太低而无法阅读。所以我们想“调低”应用程序中拍摄的所有照片的对比度。

显然,我们可以在事后应用图像过滤来调整对比度,但如果图像过于褪色以至于细节不足,那么稍后进行调整将无济于事。

在 iOS 6 中拍摄照片时,有没有办法以编程方式控制亮度和对比度?

【问题讨论】:

  • 如果您愿意在预览和捕获中对照片进行实时过滤,我有一些可能对此有所帮助:github.com/BradLarson/GPUImage(特别是 GPUImageExposureFilter、GPUImageContrastFilter 和 GPUImageBrightnessFilter 过滤器,虽然其他可能有用)。但是,听起来您可能需要在拍摄时调整相机本身的曝光。

标签: ios ios6 photo


【解决方案1】:

您可以添加showsCameraControls 方法来显示相机控件,其中包括用于控制亮度/对比度等的调整。让用户决定他需要什么。

来自苹果的Documentation

显示CameraControls 指示图像选择器是否显示默认的相机控件。

@property (nonatomic) BOOL 显示CameraControls 讨论 此属性的默认值为 YES,它指定默认的相机控件在选取器中可见。如果您想使用 cameraOverlayView 属性提供自定义覆盖视图,请将其设置为 NO 以隐藏默认控件。

注意:在 iOS 3.1.3 及更早版本中,隐藏默认相机控件会限制您仅拍摄静态照片,无论设备上是否可以拍摄电影。 如果将此属性设置为 NO 并提供自己的自定义控件,则可以在关闭图像选择器界面之前拍摄多张照片。但是,如果您将此属性设置为 YES,则您的代理必须在用户拍摄一张照片或取消操作后关闭图像选择器界面。

仅当图像选择器的源类型设置为 UIImagePickerControllerSourceTypeCamera 时,您才能访问此属性。尝试访问其他源类型的此属性会导致抛出 NSInvalidArgumentException 异常。根据您分配给 mediaTypes 属性的值,默认控件会显示静态相机或电影相机界面,或允许用户选择选取器界面的选择控件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-16
    • 1970-01-01
    • 1970-01-01
    • 2011-10-29
    • 2015-10-12
    • 2016-02-03
    • 2011-03-26
    • 2013-06-02
    相关资源
    最近更新 更多