All Projects → bufferapp → Buffer Ios Image Viewer

bufferapp / Buffer Ios Image Viewer

Licence: mit
The BFRImageViewer is a turnkey solution to present images within your iOS app 🎉!

Projects that are alternatives of or similar to Buffer Ios Image Viewer

saccade
A sophisticated scientific image viewer for Linux with OpenGL support and synchronized viewports
Stars: ✭ 38 (-89.73%)
Mutual labels:  image-viewer
jpegview
Fork of JPEGView by David Kleiner - fast and highly configurable viewer/editor for JPEG, BMP, PNG, WEBP, TGA, GIF and TIFF images with a minimal GUI. Basic on-the-fly image processing is provided - allowing adjusting typical parameters as sharpness, color balance, rotation, perspective, contrast and local under-/overexposure.
Stars: ✭ 250 (-32.43%)
Mutual labels:  image-viewer
React Native Image View
Modal component to view images with zoom
Stars: ✭ 273 (-26.22%)
Mutual labels:  image-viewer
ImagePicker
Android library to choose image from gallery or camera with option to compress result image
Stars: ✭ 73 (-80.27%)
Mutual labels:  image-viewer
zsh-image-extension
Image viewing capabilities for zsh
Stars: ✭ 14 (-96.22%)
Mutual labels:  image-viewer
mpv-image-viewer
Configuration, scripts and tips for using mpv as an image viewer
Stars: ✭ 157 (-57.57%)
Mutual labels:  image-viewer
vimiv-qt
An image viewer with vim-like keybindings
Stars: ✭ 130 (-64.86%)
Mutual labels:  image-viewer
Serrata
Slide image viewer library similar to Twitter and LINE.
Stars: ✭ 322 (-12.97%)
Mutual labels:  image-viewer
image-viewer
A simple image viewer with some editing functionality.
Stars: ✭ 31 (-91.62%)
Mutual labels:  image-viewer
Picview
Fast Picture Viewer with compact UI, that can be hidden. Features image effects, galleries, image info and more. The app can automatically adjusts itself to your screen.
Stars: ✭ 259 (-30%)
Mutual labels:  image-viewer
image-zoom-view
Imageview zoom library for android
Stars: ✭ 52 (-85.95%)
Mutual labels:  image-viewer
vue-photoswipe
PhotoSwipe demo built with vue
Stars: ✭ 55 (-85.14%)
Mutual labels:  image-viewer
Phew
FLIF image viewer and QuickLook plugin for macOS
Stars: ✭ 74 (-80%)
Mutual labels:  image-viewer
Pigment.O
Krita - Plugin - Color Picker and Mixer
Stars: ✭ 75 (-79.73%)
Mutual labels:  image-viewer
Isolate
Lightweight image browser
Stars: ✭ 284 (-23.24%)
Mutual labels:  image-viewer
Vudit
A file viewer for Android
Stars: ✭ 40 (-89.19%)
Mutual labels:  image-viewer
view
Image Viewer for BART
Stars: ✭ 13 (-96.49%)
Mutual labels:  image-viewer
Ahoviewer
A GTK image viewer, manga reader, and booru browser
Stars: ✭ 345 (-6.76%)
Mutual labels:  image-viewer
React Native Image Viewing
Tiny, purely TS, modal component for viewing images 🏙
Stars: ✭ 289 (-21.89%)
Mutual labels:  image-viewer
swiftui-image-viewer
Image viewer built in SwiftUI for both local and remote images.
Stars: ✭ 180 (-51.35%)
Mutual labels:  image-viewer

BFRImageViewer

Demo

Summary

The BFRImageViewer is a turnkey solution to present images within your iOS app 🎉!

It features swipe gestures to dismiss, automatic image scaling, zooming and panning, supports multiple images, image types, URL backloading, custom view controller transitions, built in parallax effect, live photos and plays nicely with 3D touch! We use it all over the place in Buffer for iOS :-).

We've got code samples of each feature in the demo app, feel free to take a peek 👀.

Installation

The BFRImageViewer is hosted on CocoaPods and is the recommended way to install it:

pod 'BFRImageViewer'

Quickstart

To get up and running quickly with BFRImageViewer, just initialize it - that's really about it!

//Image source can be an array containing a mix of PHAssets, NSURLs, URL strings, UIImage, PHLivePhoto or BFRBackLoadedImageSource
BFRImageViewController *imageVC = [[BFRImageViewController alloc] initWithImageSource:@[image]];
let imageVC = BFRImageViewController(imageSource: [image])

From there, you'll have every photo automagically loaded up and be able to page between them. If you want some additional context, just fire up the demo project and take a peek 👌!

Custom Transition

If you'd like to use a custom view controller transition, which zooms the selected image into the image viewer, just set up some properties on the dedicated image viewer animator class:

// In viewDidLoad...
self.imageViewAnimator = [BFRImageTransitionAnimator new];

// Later on, when you want to show an image...
self.imageViewAnimator.animatedImageContainer = self.imageView;
self.imageViewAnimator.animatedImage = self.imageView.image;
self.imageViewAnimator.imageOriginFrame = self.imageView.frame;
self.imageViewAnimator.desiredContentMode = self.imageView.contentMode; //Optional

BFRImageViewController *imageVC = [[BFRImageViewController alloc] initWithImageSource:@[self.imageView.image]];
imageVC.transitioningDelegate = self.imageViewAnimator; 

[self presentViewController:imageVC animated:YES completion:nil];

That will give you this effect (excuse the low quality gif 🙈):

AnimationDemo

URL Backloading

Say you've got a thumbnail of an image, but also a URL of the higher fidelity version too. Using URL backloading, you can quickly show the lower resolution image while loading the better version in the background. When it loads - we'll automatically swap it out for you. This allows you to have the best of worlds. You don't need to have users wait for the URL to load, or settle for always viewing the degraded image.

- (void)openImageViewer {
    BFRBackLoadedImageSource *backloadedImage = [[BFRBackLoadedImageSource alloc] initWithInitialImage:[UIImage imageNamed:@"lowResImage"] hiResURL:[NSURL URLWithString:@"cdn.theURl.png"]];
    BFRImageViewController *imageVC = [[BFRImageViewController alloc] initWithImageSource:@[backloadedImage]];
    [self presentViewController:imageVC animated:YES completion:nil];
}

Going Forward

We regularly maintain this code, and you can also rest assured that it's been battle tested against thousands of users in production 👍. That said, we get things wrong from time to time - so feel free to open an issue for anything you spot!

We are always happy to talk shop, so feel free to give us a shout on Twitter:

Or, hey - why not work on the BFRImageViewer and get paid for it!? We're hiring!


Licence

This project uses MIT License.

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].