Gallery alternatives and similar libraries
Based on the "Image" category.
Alternatively, view Gallery alternatives based on common mentions on social networks and blogs.
-
GPU Image
An open source iOS framework for GPU-based image and video processing -
SDWebImage
Asynchronous image downloader with cache support as a UIImageView category -
Kingfisher
A lightweight, pure-Swift library for downloading and caching images from the web. -
MWPhotoBrowser
A simple iOS photo and video browser with grid view, captions and selections. -
FastImageCache
iOS library for quickly displaying images while scrolling -
GPUImage2
GPUImage 2 is a BSD-licensed Swift framework for GPU-accelerated video and image processing. -
TOCropViewController
A view controller for iOS that allows users to crop portions of UIImage objects -
AlamofireImage
AlamofireImage is an image component library for Alamofire -
PINRemoteImage
A thread safe, performant, feature rich image fetcher -
IDMPhotoBrowser
Photo Browser / Viewer inspired by Facebook's and Tweetbot's with ARC support, swipe-to-dismiss, image progress and more -
UIImageColors
Fetches the most dominant and prominent colors from an image. -
AspectFillFaceAware
An extension that gives UIImageView the ability to focus on faces within an image. -
SKPhotoBrowser
Simple PhotoBrowser/Viewer inspired by facebook, twitter photo browsers written by swift -
GPUImage3
GPUImage 3 is a BSD-licensed Swift framework for GPU-accelerated video and image processing using Metal. -
RSKImageCropper
An image cropper / photo cropper for iOS like in the Contacts app with support for landscape orientation. -
ImageSlideshow
Swift image slideshow with circular scrolling, timer and full screen viewer -
TLPhotoPicker
📷 multiple phassets picker for iOS lib. like a facebook -
Lightbox
:milky_way: A convenient and easy to use image viewer for your iOS app -
TinyCrayon
A smart and easy-to-use image masking and cutout SDK for mobile apps. -
MetalPetal
A GPU accelerated image and video processing framework built on Metal. -
EBPhotoPages
A photo gallery for iOS with a modern feature set. Similar features as the Facebook photo browser. -
Twitter Image Pipline
Twitter Image Pipeline is a robust and performant image loading and caching framework for iOS clients -
ImagePickerSheetController
ImagePickerSheetController replicates the custom photo action sheet in iMessage. -
YUCIHighPassSkinSmoothing
An implementation of High Pass Skin Smoothing using Apple's Core Image Framework -
DFImageManager
Image loading, processing, caching and preheating -
CTPanoramaView
A library that displays spherical or cylindrical panoramas with touch or motion based controls. -
ImageScout
A Swift implementation of fastimage. Supports PNG, GIF, and JPEG. -
ShadowImageView
A apple music cover picture shadow style image library -
OnlyPictures
A simple and flexible way to add source of overlapping circular pictures, currently supports horizontal overlapping or distant pictures with great layout flexibility. -
AXPhotoViewer
An iOS/tvOS photo gallery viewer, useful for viewing a large (or small!) number of photos. -
ComplimentaryGradientView
Create complementary gradients generated from dominant and prominent colors in supplied image. Inspired by Grade.js -
SimpleImageViewer
A snappy image viewer with zoom and interactive dismissal transition. -
Viewer
Image viewer (or Lightbox) with support for local and remote videos and images -
SABlurImageView
You can use blur effect and it's animation easily to call only two methods.
Appwrite - The open-source backend cloud platform
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Gallery or a related project?
README
Description
We all love image pickers, don't we? You may already know of ImagePicker, the all in one solution for capturing pictures and selecting images. Well, it has a sibling too, called Gallery
. Based on the same engine that powers ImagePicker, Gallery has a clearer flow based on albums and focuses on the use case of selecting video. If this suits your need, give it a try 😉
Gallery
has 3 tabs with easy navigation through swipe gesture
- Images: select albums and images. Handle selection with hightlighted numbers so your users don't forget the order
- Camera: your photographer skill goes here
- Videos: display all videos and select. For now the use case is to select one video at a time
And, it has zero dependencies 😎
Usage
Presenting
GalleryController
is the main entry point, just instantiate and give it the delegate
let gallery = GalleryController()
gallery.delegate = self
present(gallery, animated: true, completion: nil)
The content controller is not loaded until the users navigate to, which offers a much faster experience.
Delegate
The GalleryControllerDelegate
requires you to implement some delegate methods in order to interact with the picker
func galleryController(_ controller: GalleryController, didSelectImages images: [Image])
func galleryController(_ controller: GalleryController, didSelectVideo video: Video)
func galleryController(_ controller: GalleryController, requestLightbox images: [Image])
func galleryControllerDidCancel(_ controller: GalleryController)
The lightbox delegate method is your chance to display selected images. If you're looking for a nice solution, here is the Lightbox that we use and love
Resolving
The delegate methods give you Image
and Video
, which are just wrappers around PHAsset
. To get the actual asset informations, we offer many convenient methods. See example
Image
- Use instance method
resolve
to get the actual UIImage - Use static method
Image.resolve
to resolve a list of images
Video
- Use instance method
fetchDuration
,fetchPlayerItem
,fetchAVAsset
,fetchThumbnail
to get more information about the selected video.
Permission
Gallery
handles permissions for you. It checks and askes for photo and camera usage permissions at first launch. As of iOS 10, we need to explicitly declare usage descriptions in plist files
<key>NSCameraUsageDescription</key>
<string>This app requires access to camera</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>This app requires access to photo library</string>
Configuration
There are lots of customization points in Config
structs. For example
Config.Permission.image = UIImage(named: ImageList.Gallery.cameraIcon)
Config.Font.Text.bold = UIFont(name: FontList.OpenSans.bold, size: 14)!
Config.Camera.recordLocation = true
Config.tabsToShow = [.imageTab, .cameraTab]
Video Editor
Gallery
cares more about video with its editing functionalities. We have VideoEditor
and AdvancedVideoEditor
to trim, resize, scale and define quality of the selected video
func galleryController(_ controller: GalleryController, didSelectVideo video: Video) {
controller.dismiss(animated: true, completion: nil)
let editor = VideoEditor()
editor.edit(video: video) { (editedVideo: Video?, tempPath: URL?) in
DispatchQueue.main.async {
if let tempPath = tempPath {
let controller = AVPlayerViewController()
controller.player = AVPlayer(url: tempPath)
self.present(controller, animated: true, completion: nil)
}
}
}
}
With the Video
object, you can fetchPlayerItem
, fetchAVAsset
and fetchThumbnail
as well
And, of course, you have the ability to customize it
Config.VideoEditor.maximumDuration = 30
Config.VideoEditor.savesEditedVideoToLibrary = true
Installation
Gallery is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'Gallery'
Gallery is also available through Carthage. To install just write into your Cartfile:
github "hyperoslo/Gallery"
Gallery can also be installed manually. Just download and drop Sources
folders in your project.
Author
Hyper Interaktiv AS, [email protected]
Contributing
We would love you to contribute to Gallery, check the CONTRIBUTING file for more info.
License
Gallery is available under the MIT license. See the LICENSE file for more info.
*Note that all licence references and agreements mentioned in the Gallery README section above
are relevant to that project's source code only.