Fasttt and easy camera framework for iOS with customizable filters

Related tags

Camera FastttCamera
Overview

Open Source at IFTTT

FastttCamera Logo

CocoaPods Version Build Status Coverage Status

FastttCamera is a wrapper around AVFoundation that allows you to build your own powerful custom camera app without all the headaches of using AVFoundation directly.

FastttCamera now supports awesome photo filters!

FastttCamera

FastttCamera powers the camera in the new Do Camera app for iOS from IFTTT.

App Store

Major headaches that FastttCamera automatically handles for you:

AVFoundation Headaches
  • Configuring and managing an AVCaptureSession.
  • Displaying the AVCaptureVideoPreviewLayer in a sane way relative to your camera's view.
  • Configuring the state of the AVCaptureDevice and safely changing its properties as needed, such as setting the flash mode and switching between the front and back cameras.
  • Adjusting the camera's focus and exposure in response to tap gestures.
  • Zooming the camera in response to pinch gestures.
  • Capturing a full-resolution photo from the AVCaptureStillImageOutput.
Device Orientation Headaches
  • Changing the AVCaptureConnection's orientation appropriately when the device is rotated.
  • Detecting the actual orientation of the device when a photo is taken even if orientation lock is on by using the accelerometer, so that landscape photos are always rotated correctly.
  • (Optional) Returning a preview version of the image rotated to match the orientation of what was displayed by the camera preview, even if the user has orientation lock on.
  • (Optional) Asynchronously returning an orientation-normalized version of the captured image rotated so that the image orientation is always UIImageOrientationUp, useful for reliably displaying images correctly on web services that might not respect EXIF image orientation tags.
Image Processing Headaches
  • (Optional) Cropping the captured image to the visible bounds of your camera's view.
  • (Optional) Returning a scaled-down version of the captured image.
  • Processing high-resolution images quickly and efficiently without overloading the device's memory or creating app-terminating memory leaks.

FastttCamera does many operations faster than UIImagePickerController's camera, such as switching between the front and back camera, and provides you the captured photos in the format you need, returning a cropped full-resolution image as quickly as UIImagePickerController returns the raw captured image on most devices. It allows all of the flexibility of AVFoundation without the need to reinvent the wheel, so you can focus on making a beautiful custom UI and doing awesome things with photos.

While both UIImagePickerController's camera and AVFoundation give you raw images that may not even be cropped the same as the live camera preview your users see, FastttCamera gives you a full-resolution image cropped to the same aspect ratio as your live preview's viewport as well as a preview image scaled to the pixel dimensions of that viewport, whether you want a square camera, a camera sized to the full screen, or something else.

FastttCamera also is smart at handling image orientation, a notoriously tricky part of images from both AVFoundation and UIImagePickerController. The orientation of the camera is magically detected correctly even if the user is taking landscape photos with orientation lock turned on, because FastttCamera checks the accelerometer to determine the real device orientation.

Installation

FastttCamera is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod "FastttCamera"

Example Project

To run the example project, clone the repo, and run pod install from the Example directory.

Usage

Add an instance of FastttCamera as a child of your view controller. Adjust the size and layout of FastttCamera's view however you'd like, and FastttCamera will automatically adjust the camera's preview window and crop captured images to match what is visible within its bounds.

#import "ExampleViewController.h"
#import <FastttCamera.h>

@interface ExampleViewController () <FastttCameraDelegate>
@property (nonatomic, strong) FastttCamera *fastCamera;
@end

@implementation ExampleViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    _fastCamera = [FastttCamera new];
    self.fastCamera.delegate = self;
    
    [self fastttAddChildViewController:self.fastCamera];
    self.fastCamera.view.frame = self.view.frame;
}

Switch between the front and back cameras.

if ([FastttCamera isCameraDeviceAvailable:cameraDevice]) {
	[self.fastCamera setCameraDevice:cameraDevice];
}

Set the camera's flash mode.

if ([FastttCamera isFlashAvailableForCameraDevice:self.fastCamera.cameraDevice]) {
	[self.fastCamera setCameraFlashMode:flashMode];
}

Set the camera's torch mode.

if ([FastttCamera isTorchAvailableForCameraDevice:self.fastCamera.cameraDevice]) {
	[self.fastCamera setCameraTorchMode:torchMode];
}

Tell FastttCamera to take a photo.

[self.fastCamera takePicture];

Use FastttCamera's delegate methods to retrieve the captured image object after taking a photo.

#pragma mark - IFTTTFastttCameraDelegate

- (void)cameraController:(FastttCamera *)cameraController
 didFinishCapturingImage:(FastttCapturedImage *)capturedImage
{
	/**
 	*  Here, capturedImage.fullImage contains the full-resolution captured
 	*  image, while capturedImage.rotatedPreviewImage contains the full-resolution
 	*  image with its rotation adjusted to match the orientation in which the
 	*  image was captured.
 	*/
}

- (void)cameraController:(FastttCamera *)cameraController
 didFinishScalingCapturedImage:(FastttCapturedImage *)capturedImage
{
	/**
 	*  Here, capturedImage.scaledImage contains the scaled-down version
 	*  of the image.
 	*/
}

- (void)cameraController:(FastttCamera *)cameraController
 didFinishNormalizingCapturedImage:(FastttCapturedImage *)capturedImage
{
	/**
 	*  Here, capturedImage.fullImage and capturedImage.scaledImage have
 	*  been rotated so that they have image orientations equal to
 	*  UIImageOrientationUp. These images are ready for saving and uploading,
 	*  as they should be rendered more consistently across different web
 	*  services than images with non-standard orientations.
 	*/
}

Filters!

FastttCamera now supports awesome photo filters!

Filter Camera

FastttFilterCamera is a wrapper around the super-speedy GPUImage project that supports fast and easy creation of a camera app using filters based on GPUImage's Lookup Filters.

GPUImage is a powerful framework that processes images by using the GPU so quickly that it's possible to filter the live video preview straight from the camera. With all of its powerful features, it can be a bit tricky to get it configured correctly to make this work, and then you still need to solve the same image orientation and cropping challenges that you would using AVFoundation. FastttFilterCamera uses the same interface as FastttCamera, but allows you to apply a simple filter to the camera's preview or to your images.

Lookup Filters

Lookup Filters are a clever feature of GPUImage that makes creating beautiful filters as easy as editing a photo. Using your favorite photo editing application, you create whatever effect you want using actions or layers, and test it out on photos until you like the look. If you use Photoshop, check out this example lookup filter image creation file.

When you're ready, you take a special png image that has one pixel for each possible color value, and apply your desired effects to it. The Lookup Filter then filters each pixel of a photo by looking at the pixel location in your lookup image that corresponds to the color in the photo, and replacing it with the color it finds in the lookup image.

It's super fast because it doesn't need to do any on-the-fly calculations such as adjusting contrast or brightness, it just looks up the pre-calculated replacement color, so you can do more complex effects without slowing down your app. Pretty cool stuff!

The only limitation of Lookup Filters is that the effects you apply must not be affected by the location of the pixel. Blur, vignette, noise/grain, texture, edge detection, and other similar effects that are either dependent on neighboring pixels or aren't uniform over the entire image won't work, but Contrast, Levels, Color Overlay, Hue, Brightness, and Saturation would all be perfect effects to use here. Remember to save it as an uncompressed 512 x 512 png image when you're done.

Filters Installation

FastttCamera uses a CocoaPods subspec if you need support for photo filtering. To install FastttCamera including filters support, simply add the following line to your Podfile:

pod "FastttCamera/Filters"

This will also include all of the standard FastttCamera classes, so the FastttCamera/Filters subspec is the only FastttCamera CocoaPod you need to include in your Podfile.

Usage

The filters camera uses the same interface as the regular FastttCamera. To create a camera that live-filters the camera's preview, just include the Filters CocoaPods subspec, and create a FastttFilterCamera instead of a FastttCamera.

#import "ExampleViewController.h"
#import <FastttFilterCamera.h>

@interface ExampleViewController () <FastttCameraDelegate>
@property (nonatomic, strong) FastttFilterCamera *fastCamera;
@end

@implementation ExampleViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    UIImage *lookupFilterImage = [UIImage imageNamed:@"YourLookupImage"];
    _fastCamera = [FastttFilterCamera cameraWithFilterImage:lookupFilterImage];
    self.fastCamera.delegate = self;
    
    [self fastttAddChildViewController:self.fastCamera];
    self.fastCamera.view.frame = self.view.frame;
}

To change to a different filter, just change the filterImage property of the FastttFilterCamera to the lookup image of the new filter.

- (void)switchFilter
{    
    UIImage *newLookupFilterImage = [UIImage imageNamed:@"NewLookupImage"];
    self.fastCamera.filterImage = newLookupFilterImage;
}

Filtering Captured Photos

If you don't want the live camera preview to have a set filter, you can use a regular FastttCamera for photo taking, then apply your filters to the captured photos afterwards.

Include the FastttCamera/Filters CocoaPods subspec, then create a regular FastttCamera for photo capturing. After your user takes the photo, you can present filter options they can apply to the static image on your photo edit/confirm screen using the UIImage fastttFilteredWithImage: filter method found in UIImage+FastttFilters.h.

#import <UIImage+FastttFilters.h>

- (void)applyFilter
{
    UIImage *preview = [UIImage imageWithContentsOfFile:self.imageFileName];
    UIImage *lookupFilterImage = [UIImage imageNamed:@"LookupImage"];
    preview = [preview fastttFilteredImageWithFilter:lookupFilterImage];
    [self.imageView setImage:preview];
}

Remember to apply each filter to the original UIImage if you let users switch between many filters, instead of applying new filters on top of the same image you already filtered, unless you intend for the filters' effects to be combined.

Filters Example Project

To run the filters example project, clone the repo, and run pod install from the FiltersExample directory.

You can see a few examples of different lookup images used for filtering in the Images.xcassets directory. Remember, to make your own custom lookup filters, start with this unfiltered lookup image, and remember to save it as an uncompressed 512 x 512 png image in your project when you're done applying any desired effects.

Contributors

License

FastttCamera is available under the MIT license. See the LICENSE file for more info.

Copyright 2015 IFTTT Inc.

Comments
  • Swift not recognizing enum FastttCameraFlashMode

    Swift not recognizing enum FastttCameraFlashMode

    Hi - I'm trying to check the cameraFlashMode while using Swift 2.0. For some reason, I get the error Enum case 'On' is not a member of type 'FastttCameraFlashMode?' with the following:

    @IBAction func switchFlash(sender: AnyObject) {
            var flashMode: FastttCameraFlashMode
            var flashTitle: String
            switch self.camera?.cameraFlashMode {
            case FastttCameraFlashMode.On:
                flashMode = FastttCameraFlashMode.Off
                flashTitle = "Flash Off"
            default:
                flashMode = FastttCameraFlashMode.On
                flashTitle = "Flash On"
            }
    
            if let camera = camera {
                if camera.isFlashAvailableForCurrentDevice() {
                    camera.cameraFlashMode = flashMode
                    flashButton.setTitle(flashTitle, forState: UIControlState.Normal)
                }
            }
        }
    

    The odd thing is that I can set the flashMode perfectly fine, but the switch is not working. The same happens for Off and Auto. I'm not sure if this is an iOS 9 issue or a Fasttt issue. If it's an Apple issue, then I can file a Radar.

    Thanks, Ahan

    opened by ahanmal 4
  • Filter image example does not work

    Filter image example does not work

    The sample code does not give a preview as expected:

    - (void)viewDidLoad {
        [super viewDidLoad];
    
        _filterCamera = [FastttFilterCamera cameraWithFilterImage:[UIImage imageNamed:@"MonochomeHighContrast"]];
        self.filterCamera.delegate = self;
        [self fastttAddChildViewController:self.filterCamera];
        self.filterCamera.view.frame = self.view.frame;
    }
    

    Instead, setting the filterImage once more works:

    - (void)viewDidLoad {
        [super viewDidLoad];
    
        _filterCamera = [FastttFilterCamera cameraWithFilterImage:[UIImage imageNamed:@"MonochomeHighContrast"]];
        self.filterCamera.delegate = self;
        [self fastttAddChildViewController:self.filterCamera];
        self.filterCamera.view.frame = self.view.frame;
        self.filterCamera.filterImage = [UIImage imageNamed:@"MonochomeHighContrast"];
    }
    

    Why?

    Tested on iPhone 6 Plus, installed via Pod.

    opened by horaceho 3
  • First startup of the camera , it is not possible to zoom

    First startup of the camera , it is not possible to zoom

    when I was returning from the background you can use it .

    Do you have a problem with the following ? _setupCaptureSession method of FastttCamera.m The following has not been read at the time of the first start-up .

                if (self.isViewLoaded && self.view.window) {
                    [self startRunning];
                    [self _insertPreviewLayer];
                    [self _setPreviewVideoOrientation];
                    [self _resetZoom];
                }
    

    In Xcode7 Console (lldb) po [(UIView *)self.view window] nil

    opened by RSDessin 2
  • 'Expected a Type' error since Xcode 7

    'Expected a Type' error since Xcode 7

    After opening project on Xcode 7 and updating pods - I received an 'Expected a Type' error on this line:

    - (CGRect)fastttCropRectFromPreviewLayer:(AVCaptureVideoPreviewLayer *)previewLayer;

    I thought Cocoapods might be to blame so I've reverted pod to the version I was using before (0.2.9) to no effect. I've removed all pods from the project, cleaned and then re-added - but no joy. I'm at a bit of a loss!

    Image below is what I see - and I can provide more detail if required. Any thoughts would be much appreciated. Thanks.

    image

    opened by iain-reid 2
  • Conflicting return type issue in Xcode7.0(7A220) with FastttCamera 0.3.2

    Conflicting return type issue in Xcode7.0(7A220) with FastttCamera 0.3.2

    After I updated to Xcode7.0 from 6.4, I've got a build warning like below.

    Pods/FastttCamera/FastttCamera/FastttCamera.m:164:1: Conflicting return type in implementation of 'supportedInterfaceOrientations': 'UIInterfaceOrientationMask' (aka 'enum UIInterfaceOrientationMask') vs 'NSUInteger' (aka 'unsigned long')
    

    i think it is the same problem with this link: https://forums.developer.apple.com/thread/6165

    opened by ecoopnet 2
  • Swift implementation

    Swift implementation

    Hi!

    I'm trying to implement the camera in Swift. So far I've been able to instantiate it, take a picture, and manipulate the resulting pic.

    Where I'm running into trouble is with the functions in AVCaptureDevice+FastttCamera.m. I can't seem to get the syntax right to call these functions in Swift.

    var myCam = FastttCamera()
    if FastttCamera.isFlashAvailableForCameraDevice(myCam.cameraDevice){
        myCam.setCameraFlashMode(FastttCameraFlashMode.Off)
    }
    
    

    'FastttCamera' does not have a member named 'setCameraFlashMode'

    I know I'm probably approaching this incorrectly but figured I'd ask for help since I'm stuck. If someone could take a quick look I'd really appreciate it.

    opened by joebernard 2
  • Add delegate callback for raw jpeg data

    Add delegate callback for raw jpeg data

    This is useful for taking the jpeg with the included metadata (EXIF, etc) and saving it to disk or accessing EXIF. This metadata is lost when the image is converted to a UIImage.

    I'm happy to add tests for this if there is a good suggestion on how best to do that.

    opened by davelyon 2
  • Add support for Torch instead of Flash?

    Add support for Torch instead of Flash?

    This is actually not a huge change and can of course just be bolted on by a user but I figure it might be worth it to include an option to turn on the Torch before taking a picture rather than just flashing it (I do it this way in my apps because I find it lets me compose my shot better on the first try, since the picture has time to refocus nicely and you can adjust your angle to minimize glare). Any thoughts?

    opened by DimaVartanian 2
  • Invalid Podfile - Unsupported Options 'exclusive=>true' with CocoaPod v1.0

    Invalid Podfile - Unsupported Options 'exclusive=>true' with CocoaPod v1.0

    Hi,

    I'm testing out from the Example directory. On running pod install, I get this error message (See attached pic)

    Is this known? (Sorry, I'm a bit new to CocoaPods)

    thanks screen shot 2016-05-26 at 2 41 19 pm

    opened by laventura 1
  • Camera not fully initializing in Swift project

    Camera not fully initializing in Swift project

    Strange one here, hoping you can shed some light...

    This block of code in FastttCamera.m doesn't execute in my Swift project:

    if (self.isViewLoaded && self.view.window) {
        [self startRunning];
        [self _insertPreviewLayer];
        [self _setPreviewVideoOrientation];
        [self _resetZoom];
    }
    

    I've verified that self.isViewLoaded is true. However, when I po self.view.window, the response is property 'window' not found on object of type 'UIView *'

    OK, fine, that would explain why I the block doesn't run. If I remove the self.view.window check everything seems to function normally again. However within the example app provided, self.view.window is also not found on view when I po it in lldb (same error as in my app), BUT the block still executes.

    To test this, set a breakpoint here, run the example app, and then po self.view.window.

    The example app does work, and my app mostly works without this although zooming is broken because FastttZoom.maxScale is not initialized. Any ideas what would cause this or how to fix?

    opened by joebernard 1
  • add a framework header file

    add a framework header file

    I use in it in swift, I have to import all the files one by one into bridge header why not add a header such as FasttCameraKit.h which imports all public header files

    opened by aelam 1
  • Main Thread Checker: UI API called on a background thread

    Main Thread Checker: UI API called on a background thread

    It seems like FastttCamera is using background thread to access UI API. Enabled Main Thread Checker using Xcode 9 Apple Doc.

    Happens in FastttCamera.m line number 610

    Here's the backtrace after pausing execution.

    =================================================================
    Main Thread Checker: UI API called on a background thread: -[UIView bounds]
    PID: 2754, TID: 1011164, Thread name: (none), Queue name: com.apple.root.default-qos, QoS: 21
    Backtrace:
    4   FastttCamera                        0x00000001026d7d98 __107-[FastttCamera _processImage:withCropRect:maxDimension:fromCamera:needsPreviewRotation:previewOrientation:]_block_invoke + 708
    5   libdispatch.dylib                   0x0000000109cc12cc _dispatch_call_block_and_release + 24
    6   libdispatch.dylib                   0x0000000109cc128c _dispatch_client_callout + 16
    7   libdispatch.dylib                   0x0000000109ccd3dc _dispatch_queue_override_invoke + 984
    8   libdispatch.dylib                   0x0000000109cd29d0 _dispatch_root_queue_drain + 624
    9   libdispatch.dylib                   0x0000000109cd26f4 _dispatch_worker_thread3 + 136
    10  libsystem_pthread.dylib             0x0000000185beb06c _pthread_wqthread + 1268
    11  libsystem_pthread.dylib             0x0000000185beab6c start_wqthread + 4
    2017-12-05 20:12:47.092293+0530 App-Dev[2754:1011164] [reports] Main Thread Checker: UI API called on a background thread: -[UIView bounds]
    PID: 2754, TID: 1011164, Thread name: (none), Queue name: com.apple.root.default-qos, QoS: 21
    Backtrace:
    4   FastttCamera                        0x00000001026d7d98 __107-[FastttCamera _processImage:withCropRect:maxDimension:fromCamera:needsPreviewRotation:previewOrientation:]_block_invoke + 708
    5   libdispatch.dylib                   0x0000000109cc12cc _dispatch_call_block_and_release + 24
    6   libdispatch.dylib                   0x0000000109cc128c _dispatch_client_callout + 16
    7   libdispatch.dylib                   0x0000000109ccd3dc _dispatch_queue_override_invoke + 984
    8   libdispatch.dylib                   0x0000000109cd29d0 _dispatch_root_queue_drain + 624
    9   libdispatch.dylib                   0x0000000109cd26f4 _dispatch_worker_thread3 + 136
    10  libsystem_pthread.dylib             0x0000000185beb06c _pthread_wqthread + 1268
    11  libsystem_pthread.dylib             0x0000000185beab6c start_wqthread + 4
    
    opened by ajithrnayak 1
  • Orientating and or scaling image in landscape in portrait only app

    Orientating and or scaling image in landscape in portrait only app

    So as the title suggests, my App is portrait only, however there are instances where i would like to tell the library it is about to take landscape pictures, for example for business cards. In this case i make the camera fullscreen and encourage them to take a landscape picture. Then i would like the picture that is returned to be rotated to be portrait. Reading some of the variables names it looks as if this is possible but i cant seem to get it to work

    Any help is appreciated.

    opened by Genhain 0
  • Faster cropping

    Faster cropping

    Just a small improvement - drawInRect performance is very slow, and this method is faster.

    https://developer.apple.com/library/content/qa/qa1708/_index.html

    opened by liamdon 0
  • Crash on [AVCaptureSession addInput:]

    Crash on [AVCaptureSession addInput:]

    There are no checks for errors when AVCaptureDeviceInput *deviceInput = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil] so if an error occurs, deviceInput will be nil and the following call to [_session addInput:deviceInput] will crash.

    We cannot reproduce it on development, but we see several crashes on our production app on crashlytics:

    Fatal Exception: NSInvalidArgumentException
    0  CoreFoundation                 0x184aa51b8 __exceptionPreprocess
    1  libobjc.A.dylib                0x1834dc55c objc_exception_throw
    2  AVFoundation                   0x18c287c70 -[AVCaptureSession addInput:]
    3  FastttCamera                   0x100f42170 __36-[FastttCamera _setupCaptureSession]_block_invoke.150 (FastttCamera.m:436)
    4  libdispatch.dylib              0x18392e1fc _dispatch_call_block_and_release
    5  libdispatch.dylib              0x18392e1bc _dispatch_client_callout
    6  libdispatch.dylib              0x183932d68 _dispatch_main_queue_callback_4CF
    7  CoreFoundation                 0x184a52810 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__
    8  CoreFoundation                 0x184a503fc __CFRunLoopRun
    9  CoreFoundation                 0x18497e2b8 CFRunLoopRunSpecific
    10 GraphicsServices               0x186432198 GSEventRunModal
    11 UIKit                          0x18a9c57fc -[UIApplication _run]
    12 UIKit                          0x18a9c0534 UIApplicationMain
    

    Is there any reason why there are no such checks?

    Thanks in advance

    opened by elikohen 1
Releases(0.3.5)
Owner
IFTTT
Every thing works better together.
IFTTT
Library for iOS Camera API. CameraKit helps you add reliable camera to your app quickly.

CameraKit helps you add reliable camera to your app quickly. Our open source camera platform provides consistent capture results, service that scales, and endless camera possibilities.

CameraKit 628 Dec 27, 2022
A simple, customizable camera control - video recorder for iOS.

LLSimpleCamera: A simple customizable camera - video recorder control LLSimpleCamera is a library for creating a customized camera - video recorder sc

Ömer Faruk Gül 1.2k Dec 12, 2022
NextLevel is a Swift camera system designed for easy integration, customized media capture, and image streaming in iOS

NextLevel is a Swift camera system designed for easy integration, customized media capture, and image streaming in iOS. Integration can optionally leverage AVFoundation or ARKit.

NextLevel 2k Jan 2, 2023
Custom camera with AVFoundation. Beautiful, light and easy to integrate with iOS projects.

?? Warning This repository is DEPRECATED and not maintained anymore. Custom camera with AVFoundation. Beautiful, light and easy to integrate with iOS

Tudo Gostoso Internet 1.4k Dec 16, 2022
A light weight & simple & easy camera for iOS by Swift.

DKCamera Description A light weight & simple & easy camera for iOS by Swift. It uses CoreMotion framework to detect device orientation, so the screen-

Bannings 86 Aug 18, 2022
An iOS framework that uses the front camera, detects your face and takes a selfie.

TakeASelfie An iOS framework that uses the front camera, detects your face and takes a selfie. This api opens the front camera and draws an green oval

Abdullah Selek 37 Jan 3, 2023
A Snapchat Inspired iOS Camera Framework written in Swift

Overview SwiftyCam is a a simple, Snapchat-style iOS Camera framework for easy photo and video capture. SwiftyCam allows users to capture both photos

Andrew Walz 2k Dec 21, 2022
BarcodeScanner is a simple and beautiful wrapper around the camera with barcode capturing functionality and a great user experience.

Description BarcodeScanner is a simple and beautiful wrapper around the camera with barcode capturing functionality and a great user experience. Barco

HyperRedink 1.6k Jan 7, 2023
A fully customisable and modern camera implementation for iOS made with AVFoundation.

Features Extremely simple and easy to use Controls autofocus & exposure Customizable interface Code-made UI assets that do not lose resolution quality

Gabriel Alvarado 1.3k Nov 30, 2022
Video and photo camera for iOS

Features: Description Records video ?? takes photos ?? Flash on/off ⚡ Front / Back camera ↕️ Hold to record video ✊ Tap to take photo ?? Tap to focus

André J 192 Dec 17, 2022
ALCameraViewController - A camera view controller with custom image picker and image cropping.

ALCameraViewController A camera view controller with custom image picker and image cropping. Features Front facing and rear facing camera Simple and c

Alex Littlejohn 2k Dec 6, 2022
Instagram-like photo browser and a camera feature with a few line of code in Swift.

Fusuma is a Swift library that provides an Instagram-like photo browser with a camera feature using only a few lines of code.

Yuta Akizuki 2.4k Dec 31, 2022
This plugin defines a global navigator.camera object, which provides an API for taking pictures and for choosing images from the system's image library.

title description Camera Take pictures with the device camera. AppVeyor Travis CI cordova-plugin-camera This plugin defines a global navigator.camera

null 0 Nov 2, 2021
A camera designed in Swift for easily integrating CoreML models - as well as image streaming, QR/Barcode detection, and many other features

Would you like to use a fully-functional camera in an iOS application in seconds? Would you like to do CoreML image recognition in just a few more sec

David Okun 868 Dec 29, 2022
Camera engine for iOS, written in Swift, above AVFoundation. :monkey:

?? The most advanced Camera framework in Swift ?? CameraEngine is an iOS camera engine library that allows easy integration of special capture feature

Remi ROBERT 575 Dec 25, 2022
UIView+CameraBackground - Show camera layer as a background to any UIView.

UIView+CameraBackground Show camera layer as a background to any UIView. Features Both front and back camera supported. Flash modes: auto, on, off. Co

Yonat Sharon 63 Nov 15, 2022
Simple Swift class to provide all the configurations you need to create custom camera view in your app

Camera Manager This is a simple Swift class to provide all the configurations you need to create custom camera view in your app. It follows orientatio

Imaginary Cloud 1.3k Dec 29, 2022
Mock UIImagePickerController for testing camera based UI in simulator

Mock UIImagePickerController to simulate the camera in iOS simulator.

Yonat Sharon 18 Aug 18, 2022
ScanBarcodes is a SwiftUI view that scans barcodes using an iPhone or iPad camera.

ScanBarcodes ScanBarcodes is a SwiftUI view that scans barcodes using an iPhone or iPad camera. The framework uses AVFoundation for high performance v

NASA Jet Propulsion Laboratory 6 Nov 29, 2022