ALCameraViewController alternatives and similar libraries
Based on the "Camera" category.
Alternatively, view ALCameraViewController alternatives based on common mentions on social networks and blogs.
-
SCRecorder
iOS camera engine with Vine-like tap to record, animatable filters, slow motion, segments editing -
PBJVision
DISCONTINUED. πΈ iOS Media Capture β features touch-to-record video, slow motion, and photography -
CameraManager
Simple Swift class to provide all the configurations you need to create custom camera view in your app -
TGCameraViewController
DISCONTINUED. Custom camera with AVFoundation. Beautiful, light and easy to integrate with iOS projects. -
Cool-iOS-Camera
A fully customisable and modern camera implementation for iOS made with AVFoundation. -
Lumina
A camera designed in Swift for easily integrating CoreML models - as well as image streaming, QR/Barcode detection, and many other features -
RSBarcodes_Swift
1D and 2D barcodes reader and generators for iOS 8 with delightful controls. Now Swift. -
CameraEngine
DISCONTINUED. ππ· Camera engine for iOS, written in Swift, above AVFoundation. π -
CameraKit-iOS
Library for iOS Camera API. Massively increase performance and ease of use within your next iOS Project. -
JVTImageFilePicker
Easy and beautiful way for a user to pick content, files or images. Written in Objective C
CodeRabbit: AI Code Reviews for Developers
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of ALCameraViewController or a related project?
README
β οΈ This project is unmaintained
ALCameraViewController
A camera view controller with custom image picker and image cropping.
Features
- [x] Front facing and rear facing camera
- [x] Simple and clean look
- [x] Custom image picker with permission checking
- [x] Image cropping
- [x] Flash light
- [x] Zoom
- [x] Tap to focus
Installation & Requirements
This project requires Xcode 9 to run and compiles with swift 4
Note: This library makes use of the AVFoundation camera API's which are unavailable on the iOS simulator. You'll need a real device to run it.
CocoaPods: Add the following to your Podfile:
pod 'ALCameraViewController'
For swift 3.2 support
pod 'ALCameraViewController', '~> 2.0.3'
Carthage:
github "alexlittlejohn/ALCameraViewController"
Privacy (iOS 10)
If you are building your app with iOS 10 or newer, you need to add two privacy keys to your app to allow the usage of the camera and photo library, or your app will crash.
Add the keys below to your Info.plist
, adding strings with the description you want to provide when prompting the user.
NSPhotoLibraryUsageDescription
NSCameraUsageDescription
Usage
To use this component couldn't be simpler.
Add import ALCameraViewController
to the top of your controller file.
In the viewController
let cameraViewController = CameraViewController { [weak self] image, asset in
// Do something with your image here.
self?.dismiss(animated: true, completion: nil)
}
present(cameraViewController, animated: true, completion: nil)
Parameters
There are a number of configurable options available for CameraViewController
init(croppingParameters: CroppingParameters = CroppingParameters(),
allowsLibraryAccess: Bool = true,
allowsSwapCameraOrientation: Bool = true,
allowVolumeButtonCapture: Bool = true,
completion: @escaping CameraViewCompletion)
The Cropping Parameters struct accepts the following parameters
init(isEnabled: Bool = false,
allowResizing: Bool = true,
allowMoving: Bool = true,
minimumSize: CGSize = CGSize(width: 60, height: 60))
The success parameter returns a UIImage?
and a PHAsset?
for more advanced use cases.
If the user canceled photo capture then both of these options will be nil
typealias CameraViewCompletion = (UIImage?, PHAsset?) -> Void
Note: To prevent retain cycles, it is best to use a
[weak self]
reference within the success parameter
Other usage options
You can also instantiate the image picker component by itself as well.
let croppingEnabled = true
/// Provides an image picker wrapped inside a UINavigationController instance
let imagePickerViewController = CameraViewController.imagePickerViewController(croppingEnabled: croppingEnabled) { [weak self] image, asset in
// Do something with your image here.
// If cropping is enabled this image will be the cropped version
self?.dismiss(animated: true, completion: nil)
}
present(imagePickerViewController, animated: true, completion: nil)
For more control you can create it directly.
Note: This approach requires some familiarity with the PhotoKit library provided by apple
import Photos
let imagePickerViewController = PhotoLibraryViewController()
imagePickerViewController.onSelectionComplete = { asset in
// The asset could be nil if the user doesn't select anything
guard let asset = asset else {
return
}
// Provides a PHAsset object
// Retrieve a UIImage from a PHAsset using
let options = PHImageRequestOptions()
options.deliveryMode = .highQualityFormat
options.isNetworkAccessAllowed = true
PHImageManager.default().requestImage(for: asset, targetSize: PHImageManagerMaximumSize, contentMode: .aspectFill, options: options) { image, _ in
if let image = image {
// Do something with your image here
}
}
}
present(imagePickerViewController, animated: true, completion: nil)
License
ALCameraViewController is available under the MIT license. See the LICENSE file for more info.
*Note that all licence references and agreements mentioned in the ALCameraViewController README section above
are relevant to that project's source code only.