• Stars
    star
    156
  • Rank 239,589 (Top 5 %)
  • Language
    Objective-C
  • License
    MIT License
  • Created almost 11 years ago
  • Updated about 9 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A pixel-perfect clone of iOS 7's UIImagePickerController, with a few improvements.

JPSImagePickerController

A pixel-perfect clone of iOS 7's UIImagePickerController, with a few improvements. I built this because Apple's image picker is difficult to modify. Works on both iPad & iPhone.

Screenshots

Features:

  • Front/Back camera switching
  • Flash on/off
  • Taking pictures in multiple orientations
  • Triggering a picture with the "volume up" hardware button
  • Confirmation screen
  • Zooming the image in the confirmation screen
  • Displaying a message in the confirmation screen

Installation

From CocoaPods

Add pod 'JPSImagePickerController' to your Podfile.

Manually

Drag the JPSImagePickerController folder into your project and link the MediaPlayer and AVFoundation frameworks to your project.

Usage

Just launch it modally and set its delegate:

JPSImagePickerController *imagePicker = [[JPSImagePickerController alloc] init];
imagePicker.delegate = self;
[self presentViewController:imagePicker animated:YES completion:nil];

Its delegate can respond to the following methods:

// Called immediately after the picture was taken
- (void)picker:(JPSImagePickerController *)picker didTakePicture:(UIImage *)picture;
// Called immediately after the "Use" button was tapped
- (void)picker:(JPSImagePickerController *)picker didConfirmPicture:(UIImage *)picture;
// Called immediately after the "Cancel" button was tapped
- (void)pickerDidCancel:(JPSImagePickerController *)picker;

See sample Xcode project for more examples on how to configure.

TODO

  • Display a box around the tapped area when tapping to focus.
  • Per-element rotation of "flash", "camera switch" and "Cancel" buttons. This is tricky because we don't want our whole layout to change, just those buttons.
  • Better camera switching animation. It's currently a bit janky.
  • Full reproduction of UIImagePickerController's flash control. i.e. expanding to see "Auto", "On" & "Off"

License

This project is under the MIT license.

More Repositories

1

SourceKitten

An adorable little framework and command line tool for interacting with SourceKit.
Swift
2,308
star
2

Yams

A Sweet and Swifty YAML parser.
C
1,108
star
3

PeerKit

An open-source Swift framework for building event-driven, zero-config Multipeer Connectivity apps
Swift
872
star
4

CardsAgainst

An iOS game for horrible people
Swift
574
star
5

ZenTuner

A minimal chromatic tuner for iOS & macOS.
Swift
530
star
6

JPSThumbnailAnnotation

A simple mapkit annotation for displaying images and details.
Objective-C
475
star
7

DeckRocket

DeckRocket turns your iPhone into a remote for Deckset presentations
Objective-C
397
star
8

JPSVolumeButtonHandler

JPSVolumeButtonHandler provides an easy block interface to hardware volume buttons on iOS devices. Perfect for camera apps!
Objective-C
333
star
9

SwiftEdit

A proof-of-concept editor, written in Swift, that supports Swift syntax highlighting using SourceKit.
Swift
239
star
10

AWSPics

An AWS CloudFormation stack to run a serverless password-protected photo gallery
JavaScript
219
star
11

Milestones

An app to count down the days until upcoming milestones.
Swift
201
star
12

JPSKeyboardLayoutGuide

Easily make your Auto Layout view controllers keyboard aware
Objective-C
69
star
13

SwiftXPC

XPC simplified for Swift. Deal with Swift and NS* objects instead of xpc_object_t.
Swift
63
star
14

Mix2Files

iOS Project to mix several audio files (mp3's, m4a's, caf's) together at different intervals
Objective-C
40
star
15

LetterpressPlayer

Solves Letterpress games via OCR and colour categorization. Work in progress.
Objective-C
37
star
16

talks

Slides for a few of the talks I've given
JSONiq
35
star
17

UICollectionView-Animation-Bug

There's a confirmed bug in UICollectionView. This project highlights a workaround.
Objective-C
33
star
18

jekyll_app_site

Small Jekyll template to present an iPhone app with a static site
CSS
24
star
19

JPSDisplayLink

JPSDisplayLink provides an easy block interface to CADisplayLink-based animations.
Objective-C
23
star
20

AudioEmailer

Very small iOS app to record, playback and email audio. Includes a realtime dB level meter using F3
Objective-C
23
star
21

pod-diffs

Guide and example for a neat way to modify pods using patchfiles
Objective-C
22
star
22

MPCMultipeerClient

Wrapper around MultipeerConnectivity to simplify common use cases
Objective-C
15
star
23

swiftlint-bazel-example

Example SwiftLint integration with custom native rules using Bazel
Starlark
13
star
24

SwiftIvarTypeDetector

Print out the type encoding for properties in a Swift class
Objective-C
12
star
25

Selfish

A tool to automatically insert explicit `self` references in the Swift files in the current directory.
Swift
8
star
26

retest

Re-run failed GitHub Workflow runs on PRs by commenting "/retest".
TypeScript
5
star
27

rust-ios-bazel-demo

A demo iOS app building with Bazel, Rust and Swift
C++
4
star
28

PCCanvas

Simple drawing canvas for core graphics. Easily accepts PaintCode code.
Objective-C
4
star
29

SwiftClassTodo

Todo example from Swift class
Swift
4
star
30

advent-of-code-2021

Swift
3
star
31

Vertigrow-iPad

iPad app I built for Vertigrow a long time ago to help them mockup living walls as a sales tool. Basic image dragging app.
Objective-C
3
star
32

node-docker

Demo Node.JS App using Docker
Shell
3
star
33

laptop

Laptop is a shell script that turns your Mac OS X laptop into an awesome development machine.
Shell
2
star
34

AutoLayoutHelpers

Super space saving auto layout helpers.
Objective-C
2
star
35

rules_xcodeproj_ios_app

Sample rules_xcodeproj iOS app
Starlark
2
star
36

jpsim.github.com

My personal website
Ruby
2
star
37

presto-gem

Gem for interacting with Presto cards.
Ruby
2
star
38

cocoapods-static-xcframework-issue

Issue with CocoaPods and static xcframeworks
Ruby
2
star
39

GoogleMapsSDKBugs

Swift
2
star
40

SwiftPMUtilityExample

Swift
2
star
41

InputClick

The most barebones project ever with the simplest implementation of the UIInputViewAudioFeedback protocol.
Objective-C
2
star
42

fastmac

Shell
1
star
43

retest-action

A GitHub Action to re-run failed GitHub workflow runs on pull requests
TypeScript
1
star
44

applebugs

Collection of sample code for radars I've filed
Objective-C
1
star
45

presto_api

REST API for interacting with Presto cards using the presto ruby gem
Ruby
1
star
46

SourceKit

Swift Package Manager package for SourceKit
Swift
1
star