All Projects → 1amageek → Sumo

1amageek / Sumo

Licence: mit
Sumo is a library that prepares for fast upload for iOS. It is effective when uploading by selecting images continuously.

Programming Languages

swift
15916 projects

Labels

Projects that are alternatives of or similar to Sumo

Web Client
Cryptee's web client source code for all platforms.
Stars: ✭ 174 (-28.69%)
Mutual labels:  photos
Camerafragment
A simple easy-to-integrate Camera Fragment for Android
Stars: ✭ 2,312 (+847.54%)
Mutual labels:  photos
Ownphotos
Self hosted alternative to Google Photos
Stars: ✭ 2,587 (+960.25%)
Mutual labels:  photos
Skphotobrowser
Simple PhotoBrowser/Viewer inspired by facebook, twitter photo browsers written by swift
Stars: ✭ 2,285 (+836.48%)
Mutual labels:  photos
Unsplash rb
💎 Ruby wrapper for the Unsplash API.
Stars: ✭ 202 (-17.21%)
Mutual labels:  photos
Igrphototweaks
Drag, Rotate, Scale and Crop
Stars: ✭ 212 (-13.11%)
Mutual labels:  photos
Ownphotos Frontend
Stars: ✭ 171 (-29.92%)
Mutual labels:  photos
Photos
[DEPRECATED] Encrypted, secure, decentralized personal data wallet -- technology behind textile.photos
Stars: ✭ 236 (-3.28%)
Mutual labels:  photos
React Native Photo Upload
Cross platform photo upload component for react native
Stars: ✭ 204 (-16.39%)
Mutual labels:  photos
Agimagecontrols
cool tools for image edition
Stars: ✭ 217 (-11.07%)
Mutual labels:  photos
Faimagecropper
Image Cropper like Instagram
Stars: ✭ 188 (-22.95%)
Mutual labels:  photos
Exiftool Vendored.js
Fast, cross-platform Node.js access to ExifTool
Stars: ✭ 200 (-18.03%)
Mutual labels:  photos
Recall App
🖼️ An open-source and decentralized alternative to Google Photos built on top of Blockstack
Stars: ✭ 212 (-13.11%)
Mutual labels:  photos
Unsplashkit
Swift client for Unsplash
Stars: ✭ 183 (-25%)
Mutual labels:  photos
Viphotoview
View a photo with simple and basic interactive gesture.
Stars: ✭ 225 (-7.79%)
Mutual labels:  photos
Horizonsdk Ios
Horizon SDK for iOS
Stars: ✭ 171 (-29.92%)
Mutual labels:  photos
Pynet
Generating RGB photos from RAW image files with PyNET
Stars: ✭ 211 (-13.52%)
Mutual labels:  photos
Framegrabber
📱iOS app to extract full-resolution video frames as images.
Stars: ✭ 237 (-2.87%)
Mutual labels:  photos
Facerecognition
Nextcloud app that implement a basic facial recognition system.
Stars: ✭ 226 (-7.38%)
Mutual labels:  photos
Insta Downloader
Video & Photo Downloader or Repost for Instagram.
Stars: ✭ 217 (-11.07%)
Mutual labels:  photos

Sumo

Sumo is a library that prepares for fast upload for iOS. It is effective when uploading by selecting images continuously. Sumo will prepare for uploading immediately after the image is selected. Multiple selected images are compiled into one file and compressed. One compressed file can communicate without overhead.

Feature 🎉

  • ☑️ Non blocking Main thread.
  • ☑️ Fast resizing.
  • ☑️ Task is cancelable.
  • ☑️ Multi sessions.

Usage

Sumo consists of sessions and tasks. Multiple tasks are associated with one session, and you can obtain obtain artifacts by zip the session.

override func viewDidLoad() {
    super.viewDidLoad()
    var options: Sumo.Session.Options = Sumo.Session.Options()
    // Target of image resizing
    options.imageTargetSize = CGSize(width: 500, height: 500)
    Sumo.shared.startSession(options: options)
}

For example in CollectionView's

  • func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
  • func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath)
// Compress and process the image in the background.
func didSelectItem(indexPath: IndexPath, asset: PHAsset) {
    Sumo.shared.startWorflow(asset.localIdentifier) { (error) in
        if let error = error {
            debugPrint(error)
            return
        }
    }
}

// Cancel the image being compressed.
func didDeselectItem(indexPath: IndexPath, asset: PHAsset) {
    Sumo.shared.cancel(asset.localIdentifier)
}
// Stop all processing.
@objc private func cancel() {
    Sumo.shared.stop()
}

// Cancel the task being processed. The session will continue to remain.
@objc private func reset() {
    Sumo.shared.reset()
}

// Compress the resized photo to zip.
@objc private func zip() {
    Sumo.shared.zip { (url, error) in
        // Transfer to any server.
    }
}

AssemblyLine is generalized to Sumo.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].