lxm1799 / AnyImageKit

A toolbox for pick/edit/capture photo or video. Written in Swift.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AnyImageKit

GitHub Actions CocoaPods Compatible Carthage Compatible Platform License

AnyImageKit is a toolbox for picking, editing or capturing photos/videos, written in Swift.

中文说明

Features

  • Modular design
    • Picker
    • Browser
    • Editor
    • Capture
  • Light mode, dark mode or auto mode support
  • Default theme is similar with Wechat
  • Multiple & mix select support
  • Supported media types:
    • Photo
    • GIF
    • Live Photo
    • Video
  • Camera
    • Photo
    • Video
    • Live Photo
    • GIF
    • Fliter Support
  • Edit image ( Technical Preview )
    • Drawing
    • Emoji
    • Input text
    • Cropping
    • Mosaic
    • Rotate
    • Fliter Support
  • Multiple platform support
    • iOS
    • iPadOS
    • Mac Catalyst ( Technical Preview, Not support in editor.)
    • macOS
    • tvOS
  • Internationalization support
    • English (en)
    • Chinese, Simplified (zh-Hans)
    • Turkish (tr)
    • Portuguese(Brazil) (pt-BR)
    • and more... (Pull requests welcome)

Requirements

  • iOS 12.0+
  • Xcode 13.0+
  • Swift 5.5+

Installation

⚠️ Needs Xcode 12.0+ to support resources and localization files

dependencies: [
    .package(url: "https://github.com/AnyImageProject/AnyImageKit.git", .upToNextMajor(from: "0.13.0"))
]

Add this to Podfile, and then update dependency:

pod 'AnyImageKit'

Add this to Cartfile, and then update dependency:

github "AnyImageProject/AnyImageKit"

⚠️ Unsupport in Xcode 12.0, more details

Usage

Prepare

Add these keys to your Info.plist when needed:

Key Module Info
NSPhotoLibraryUsageDescription Picker
NSPhotoLibraryAddUsageDescription Picker
PHPhotoLibraryPreventAutomaticLimitedAccessAlert Picker Set YES to prevent automatic limited access alert in iOS 14+ (Picker has been adapted with Limited features that can be triggered by the user to enhance the user experience)
NSCameraUsageDescription Capture
NSMicrophoneUsageDescription Capture

Quick Start

import AnyImageKit

class ViewController: UIViewController {

    @IBAction private func openPicker(_ sender: UIButton) {
        var options = PickerOptionsInfo()
        /*
          Your code, handle custom options
        */
        let controller = ImagePickerController(options: options, delegate: self)
        present(controller, animated: true, completion: nil)
    }
}

extension ViewController: ImagePickerControllerDelegate {

    func imagePickerDidCancel(_ picker: ImagePickerController) {
        /*
          Your code, handle user cancel
        */
        picker.dismiss(animated: true, completion: nil)
    }
    
    func imagePicker(_ picker: ImagePickerController, didFinishPicking result: PickerResult) {
        let images = result.assets.map { $0.image }
        /*
          Your code, handle selected assets
        */
        picker.dismiss(animated: true, completion: nil)
    }
}

Release Notes

Version Release Date Xcode Swift iOS
v0.13.4 2021-09-23 13.0 5.5 12.0+
v0.13.3 2021-08-09 12.5 5.4 10.0+
v0.13.2 2021-06-30 12.5 5.4 10.0+
v0.13.1 2021-06-01 12.5 5.4 10.0+
v0.13.0 2021-02-08 12.4 5.3 10.0+
v0.12.0 2020-12-30 12.2 5.3 10.0+
v0.11.0 2020-12-18 12.2 5.3 10.0+
v0.10.0 2020-11-03 12.1 5.3 10.0+
v0.9.0 2020-10-09 12.0 5.3 10.0+

License

AnyImageKit is released under the MIT license. See LICENSE for details.

About

A toolbox for pick/edit/capture photo or video. Written in Swift.

License:MIT License


Languages

Language:Swift 99.2%Language:Ruby 0.3%Language:Shell 0.3%Language:Metal 0.1%Language:Objective-C 0.1%