Skip to content

GeneralD/DeCamera

Repository files navigation

DeCamera

platform language framework deps status year

Isometric illustration of a smartphone selfie camera enlarging a face's eyes

A "kawaii" iOS selfie app that detects faces and makes the eyes larger — turning ordinary photos into wide-eyed, doll-like portraits.

Features

  • Eye detection — uses Core Image CIDetector (CIDetectorTypeFace, high accuracy) to locate faces and per-eye positions, skipping eyes that are detected as closed.
  • Eye-enlargement effects — applies a partial-region zoom or a fish-eye (spherical) warp around each detected eye, then blends the result back with an alpha mask for a seamless edge.
  • Effect menu — selectable presets shown in a collection view, each with a hand-drawn Bézier-path eye icon:
    • do nothing — original image, no effect
    • clearly — sharpen / high-contrast eyes at 1.0x
    • big / bigger / biggest — natural-eye enlargement at 1.20x / 1.35x / 1.50x
    • bright — fish-eye spherical enlargement for a "brilliant", sparkly look
  • Image input — capture from the camera (SACameraPickerViewController) or pick from the photo library (UIImagePickerController), with iPad-specific fallback via the AssetsLibrary reference URL.
  • In-app purchase — a "BasicPack" unlocks the stronger effects (bigger, biggest, bright); locked items render a FontAwesome lock glyph. Purchase and restore are handled through CargoBay, with the purchase flag stored via SecureNSUserDefaults.
  • Sharing — share processed images to Twitter, Facebook, and LINE via custom UIActivity subclasses, with a localized promo caption.
  • Localization — English and Japanese (en.lproj, ja.lproj).
  • Marketing / analytics — rating prompts (iRate), tell-a-friend (iTellAFriend), and Google Analytics event tracking.

Usage

This is a CocoaPods project that opens through an Xcode workspace, not the bare project file.

# Install dependencies (Pods/ is gitignored and not committed)
pod install

# Open the workspace — NOT DeCamera.xcodeproj
open DeCamera.xcworkspace

Then build and run the DeCamera scheme onto a physical iOS device (iOS 8.1+).

Notes:

  • A physical device is required — the camera capture path logs a warning and no-ops on the Simulator, and face detection needs a real photo.
  • The dependency versions pinned in Podfile / Podfile.lock are from circa 2014–2017; resolving them against today's CocoaPods spec repo and a modern Xcode/iOS SDK will likely require updates.

Project layout

DeCamera/
├── Podfile / Podfile.lock        # CocoaPods dependency manifest
├── PrefixHeader.pch              # UIKit/Foundation + CocoaLumberjack log-level setup
├── DeCamera.xcworkspace          # open this (CocoaPods workspace)
├── DeCamera.xcodeproj
└── DeCamera/
    ├── main.m
    ├── Info.plist                # bundle id com.zyxw.DeCamera, portrait-only, iOS 8.1
    ├── Sources/
    │   ├── AppDelegate.{h,m}     # UI theming, IAP/analytics/iRate bootstrap, status-bar swizzle
    │   ├── Index/                # IndexViewController — entry screen, camera/library pickers
    │   ├── Photography/
    │   │   ├── UIImage+Facial.*  # CIDetector face/eye detection + per-eye effect application
    │   │   └── GPUImage/         # UIImage <-> GPUImage bridging, zoom/sphere/unsharp filters
    │   ├── Processing/
    │   │   ├── ProcessingViewController.*  # effect picker, preview, IAP unlock, save/share
    │   │   ├── MenuItem.*         # effect-preset model (name, selector, icon, lock state)
    │   │   └── UIBezierPath+EyeIcons.*     # vector eye icons for the menu
    │   └── Utilities/
    │       ├── Categories/        # UIImage/UIView/UIViewController/UIAlertView helpers, GA tracking
    │       ├── InAppPurchase/     # CargoBay helper + IAP NSNotificationCenter category
    │       └── CGGeometryAdditional.h
    ├── User Interface/           # Main.storyboard, LaunchScreen.xib, SelectedMarker.xib
    ├── Resources/                # alpha masks, title/social images
    ├── Images.xcassets/          # app icon
    ├── en.lproj/ ja.lproj/       # localized strings

Tech stack

  • Language: Objective-C
  • Platform: iOS 8.1+ (iPhone, portrait-only), armv7
  • Image processing: Core Image (CIDetector face detection) + GPUImage 0.1.6 (GPU filters: zoom, sphere/fish-eye, unsharp mask) + NYXImagesKit (masking)
  • Dependency manager: CocoaPods
  • Key pods: GPUImage, NYXImagesKit, SACameraPickerViewController, CargoBay (StoreKit / IAP), BlocksKit, BlockInjection (method swizzling), SecureNSUserDefaults, FontAwesome-iOS, JGProgressHUD, iRate, iTellAFriend, GoogleAnalytics-iOS-SDK, AQS{Twitter,Facebook,LINE}Activity, CocoaLumberjack
  • Original project name: RapidFilter (visible in file headers; renamed to DeCamera)
  • Bundle identifier: com.zyxw.DeCamera

Migrated from Bitbucket. Commit history preserved as-is.

About

A 'kawaii' iOS selfie app that detects faces and enlarges the eyes using Core Image and GPUImage.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages