在iOS照片中调整对比度

问题描述:

我们的iOS 6应用程序(通常由iPod touch第4代上的商业用户运行,但有时在其他iOS设备上运行)应用程序通过UIImagePickerController实现了拍照功能。在iOS照片中调整对比度

有时在某些照明条件下使用应用程序拍摄的照片太高对比度,并且照片的明亮部分中的细节被清除。图片很少对比度太低而难以阅读。所以我们想要“调低”应用中拍摄的所有照片的对比度。

很明显,我们可以事后应用图像过滤来调整对比度,但如果图像太脏,以至于细节不够详细,稍后调整将无济于事。

在iOS 6拍摄照片时,是否可以通过程序控制亮度和对比度?

+0

如果您可以在预览和捕获过程中对照片进行实时过滤,那么我可以提供以下帮助:https://github.com/BradLarson/GPUImage(特别是GPUImageExposureFilter,GPUImageContrastFilter和GPUImageBrightnessFilter过滤器,但其他人可能会有用)。但是,这听起来像你可能需要调整相机本身的曝光,因为它捕捉。 – 2013-03-05 23:25:27

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

从苹果

showsCameraControls 的Documentation指示图像拾取器是否显示默认相机控制。

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

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

只有当图像选择器的源类型设置为UIImagePickerControllerSourceTypeCamera时,才能访问此属性。试图为其他源类型访问此属性会导致抛出一个NSInvalidArgumentException异常。根据您分配给mediaTypes属性的值,默认控件显示静止照相机或摄像机界面,或者选择控件,让用户选择选择器界面。