Lightbox is a convenient and easy to use image viewer for your iOS app

Overview

Lightbox

CI Status Carthage Compatible License Platform Swift

Lightbox Icon

Lightbox is a convenient and easy to use image viewer for your iOS app, packed with all the features you expect:

  • Paginated image slideshow.
  • Video support.
  • Double-tap to zoom.
  • Image caption.
  • Dynamic background based on Hue
  • Remote image loading and caching based on Imaginary
  • Interactive transition animations.
  • Powerful configuration.
  • Live Demo

Table of Contents

Usage

Controller

To start your slideshow just instantiate LightboxController, set needed delegates and present it:

// Create an array of images.
let images = [
  LightboxImage(imageURL: URL(string: "https://cdn.arstechnica.net/2011/10/05/iphone4s_sample_apple-4e8c706-intro.jpg")!),
  LightboxImage(
    image: UIImage(named: "photo1")!,
    text: "This is an example of a remote image loaded from URL"
  ),
  LightboxImage(
    image: UIImage(named: "photo2")!,
    text: "",
    videoURL: URL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")
  ),
  LightboxImage(
    image: UIImage(named: "photo3")!,
    text: "This is an example of a local image."
  )
]

// Create an instance of LightboxController.
let controller = LightboxController(images: images)

// Set delegates.
controller.pageDelegate = self
controller.dismissalDelegate = self

// Use dynamic background.
controller.dynamicBackground = true

// Present your controller.
present(controller, animated: true, completion: nil)

Delegates

Use LightboxControllerPageDelegate if you want to be notified about page navigation changes.

extension ViewController: LightboxControllerPageDelegate {

  func lightboxController(_ controller: LightboxController, didMoveToPage page: Int) {
    print(page)
  }
}

Use LightboxControllerDismissalDelegate to be notified when controller is about to be dismissed. Please note that LightboxController dismisses itself if it was presented initially.

extension ViewController: LightboxControllerDismissalDelegate: class {

  func lightboxControllerWillDismiss(_ controller: LightboxController) {
    // ...
  }
}

Image loading

By default images are loaded using Imaginary for reliable loading and caching. But it's easy to change this behavior using LightboxConfig

LightboxConfig.loadImage = {
  imageView, URL, completion in
  // Custom image loading
}

Video

Lightbox can show and plays video using default AVPlayerViewController. Showning video by using videoURL:

LightboxImage(
  image: UIImage(named: "photo2")!,
  text: "",
  videoURL: NSURL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")
)

Override video handling if needed:

LightboxConfig.handleVideo = { from, videoURL in
  // Custom video handling
  let videoController = AVPlayerViewController()
  videoController.player = AVPlayer(url: videoURL)

  from.present(videoController, animated: true) {
    videoController.player?.play()
  }
}

Configuration

Configure text, colors, fonts of UI elements by overriding the static variables in the Lightbox configuration struct. As an example:

LightboxConfig.CloseButton.image = UIImage(named: ImageList.Lightbox.closeButton)
LightboxConfig.CloseButton.textAttributes = TextAttributes.Lightbox.closeButton
LightboxConfig.CloseButton.text = "Finish"

LightboxConfig.DeleteButton.image = UIImage(named: ImageList.Lightbox.deleteButton)
LightboxConfig.DeleteButton.textAttributes = TextAttributes.Lightbox.deleteButton
LightboxConfig.DeleteButton.text = "Delete"

LightboxConfig.InfoLabel.ellipsisText = "Show more"

Installation

Lightbox is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'Lightbox'

In order to quickly try the demo project of a Lightbox just run pod try Lightbox in your terminal.

Lightbox is also available through Carthage. To install just write into your Cartfile:

github "hyperoslo/Lightbox"

To install Lightbox manually just download and drop Sources and Images folders in your project.

Author

Hyper Interaktiv AS, [email protected]

Contributing

We would love you to contribute to Lightbox, check the CONTRIBUTING file for more info.

License

Lightbox is available under the MIT license. See the LICENSE file for more info.

Comments
  • SPM Support and Resources

    SPM Support and Resources

    https://github.com/hyperoslo/Lightbox/blob/master/Resources/Lightbox.bundle/lightbox_play%402x.png

    Did you check that this file is still working with SPM @Tobisaninfo ? Paging bc of #248

    See https://github.com/MessageKit/MessageKit/pull/1341#issuecomment-621670678

    opened by yspreen 13
  • Not displayed on iOS 13.0 beta

    Not displayed on iOS 13.0 beta

    Light box seems not to be presented properly on iOS 13.0 beta. More will be updated after another beta version of iOS is released next month.

    The current behavior with Xcode 11 beta and iOS 13.0 beta is that the controller cannot be displayed when dynamic background is set to true.
    When dynamic background is set to false, though the controller can be presented, when trying to dismiss it either by tapping the close button, or by dragging up and down, it dismiss but the gesture seems to remain, which interrupts its parent's controls.


    191219 Edit:

    The current makeshift is to change it to controller.modalPresentationStyle = .fullScreen, to avoid the new .automatic style.

    opened by yo1995 13
  • Carthage broken because of the update in Imaginary

    Carthage broken because of the update in Imaginary

    carthage update --platform iOS
    *** Fetching Lightbox
    *** Fetching Imaginary
    *** Checking out Imaginary at "4.3.1"
    *** Checking out Lightbox at "2.3.0"
    *** xcodebuild output can be found in /var/folders/zx/vkw16gb963vbw6n8w_sgl_g40000gn/T/carthage-xcodebuild.cAzWRC.log
    *** Downloading Imaginary.framework binary at "Imaginary — 4.3.1"
    *** Building scheme "Lightbox-iOS" in Lightbox.xcodeproj
    Build Failed
            Task failed with exit code 65:
            /usr/bin/xcrun xcodebuild -project /Users/user/Documents/proj/6tudio/ios-app/Carthage/Checkouts/Lightbox/Lightbox.xcodeproj -scheme Lightbox-iOS -configuration Release -derivedDataPath /Users/user/Library/Caches/org.carthage.CarthageKit/DerivedData/11.5_11E608c/Lightbox/2.3.0 -sdk iphoneos ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= CARTHAGE=YES archive -archivePath /var/folders/zx/vkw16gb963vbw6n8w_sgl_g40000gn/T/Lightbox SKIP_INSTALL=YES GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=NO CLANG_ENABLE_CODE_COVERAGE=NO STRIP_INSTALLED_PRODUCT=NO (launched in /Users/user/Documents/proj/6tudio/ios-app/Carthage/Checkouts/Lightbox)
    
    This usually indicates that project itself failed to compile. Please check the xcodebuild log for more details: /var/folders/zx/vkw16gb963vbw6n8w_sgl_g40000gn/T/carthage-xcodebuild.cAzWRC.log
    
    ───────┬─────────────────────────────────────────────────
           │ File: Cartfile
    ───────┼─────────────────────────────────────────────────
       1 ‾ │ github "hyperoslo/Lightbox" ~> 2.3
    ───────┴─────────────────────────────────────────────────
    
    ───────┬─────────────────────────────────────────────────
           │ File: Cartfile.resolved
    ───────┼─────────────────────────────────────────────────
       1 ~ │ github "hyperoslo/Imaginary" "4.3.1"
       2   │ github "hyperoslo/Lightbox" "2.3.0"
    ───────┴─────────────────────────────────────────────────
    
    opened by yspreen 9
  • Some images always fail to load (CFNetwork internal error:304)

    Some images always fail to load (CFNetwork internal error:304)

    I have no clue why this happens, but for some reason some images will never be loaded. Here is example:

    1. I load image using Lightbox: image_bug

    2. I load exact same image using another another lib(this is IDMPhotoBrowser):

    image_succes

    This happens often with random images. In log I see following message: CFNetwork internal error (0xc01a:/BuildRoot/Library/Caches/com.apple.xbs/Sources/CFNetwork_Sim/CFNetwork-808.2.16/Loading/URLConnectionLoader.cpp:304)

    I have already tried adding in Info.plist file this lines: info

    Still no success. All images in collection are being downloaded via HTTPS.

    enhancement 
    opened by heisen273 9
  • New implementation request

    New implementation request

    It doesn't have to be merged, but we could leave it as a branch for now, look at it and tell me what you think, the code is much simpler in my opinion.

    app

    Next steps are:

    • [ ] Get the initial frame of the image and make an animation with it.
    • [ ] Add more customization points as for instance a description and stuff.
    opened by RamonGilabert 9
  • Carthage build error

    Carthage build error

    *** Checking out Lightbox at "b26ee135bc89494a8cf9c7c30dbea2c42589c03a"
    *** xcodebuild output can be found in ...
    *** Building scheme "Hue-iOS" in Hue.xcodeproj
    *** Building scheme "Lightbox-iOS" in Lightbox.xcodeproj
    Build Failed
    	Task failed with exit code 65:
    	/usr/bin/xcrun xcodebuild -project /*/Carthage/Checkouts/Lightbox/Lightbox.xcodeproj -scheme Lightbox-iOS -configuration Release -derivedDataPath /Users/*/Library/Caches/org.carthage.CarthageKit/DerivedData/9.1_9B55/Lightbox/1.0.0 -sdk iphoneos ONLY_ACTIVE_ARCH=NO BITCODE_GENERATION_MODE=bitcode CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= CARTHAGE=YES archive -archivePath ./ SKIP_INSTALL=YES GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=NO CLANG_ENABLE_CODE_COVERAGE=NO (launched in /*/Carthage/Checkouts/Lightbox)
    
    /*/Carthage/Checkouts/Lightbox/Source/LightboxConfig.swift:2:8: error: module file's minimum deployment target is ios9.0 v9.0: /*/Carthage/Checkouts/Lightbox/Carthage/Build/iOS/Hue.framework/Modules/Hue.swiftmodule/arm64.swiftmodule
    import Hue
           ^
    
    ** ARCHIVE FAILED **
    
    
    The following build commands failed:
            CompileSwift normal armv7
            CompileSwiftSources normal armv7 com.apple.xcode.tools.swift.compiler
            CompileSwift normal arm64
            CompileSwiftSources normal arm64 com.apple.xcode.tools.swift.compiler
    (4 failures)
    

    XCode 9.1

    opened by nitrag 7
  • FooterView doesn't show up at start

    FooterView doesn't show up at start

    Great library! This is my first time posting in GitHub.
    The latest updates take care of the safe area issues for the iPhone X, but I noticed that the footer view doesn't show up when the Lightbox view appears for the first time. I used this in the viewDidAppear method to display the footer at start:

    if #available(iOS 11.0, *) {
           configureLayout(view.safeAreaLayoutGuide.layoutFrame.size)
    } else {
          configureLayout(view.bounds.size)
    }
    
    opened by jsntfv 7
  • Close button overlaps with status bar in iPhone X

    Close button overlaps with status bar in iPhone X

    The close button is currently overlapping with the status bar in iPhone X which makes it inaccessible so swipe to dismiss is the only thing that works.

    image

    opened by annjawn 7
  • Dynamic background issue

    Dynamic background issue

    First of all, - Sir you have done amazing work. I love Lightbox and how it looks like.

    About the issue. I like dynamic background, however I don't understand following: please see this gif: issue

    I set startIndex like this:

    let controller = LightboxController.init(images: photos, startIndex: indexPath.row)

    I have also tried this( result still the same:( ):

            let controller = LightboxController.init(images: photos)
            controller.dynamicBackground = true
            controller.goTo(indexPath.row, animated: false)
    

    As you can see, background is animating like scrolling from the image number 0 to selected image. It would be much better(and more logical: it is the first picture user clicked), if there was no background animation on startIndex image, or at least to have such option. I hope you understand my idea.

    opened by heisen273 7
  • Added possibility to set image preload value

    Added possibility to set image preload value

    I tried to load the LightboxController with hundreds of images, and ran into memory issues.

    As of now, Lightbox loads all the passed images at once, creating a memory usage spike for a high amount of images. Also it keeps all of them in memory, which is not optimal for large numbers of images.

    Therefore, it might be useful to have a possibility to set a number of images, which the user will have loaded at a time. I implemented it in this PR.

    So if preload = 0, we load all the images (default behavior), if it equals to 2, we load: -2, -1, 0(current image), 1, 2.

    opened by t0a0 6
  • Multiple classes implemented twice, causing runtime warning

    Multiple classes implemented twice, causing runtime warning

    objc[2917]: Class _TtC5Cache14DataSerializer is implemented in both /Users/user/Library/Developer/CoreSimulator/Devices/05ED95FA-218A-4F9C-9052-237EFB091D8C/data/Containers/Bundle/Application/ABD2DD0C-A269-479C-AEA7-C55E5622E82E/App.app/Frameworks/Imaginary.framework/Imaginary (0x10b74f4c0) and /Users/user/Library/Developer/CoreSimulator/Devices/05ED95FA-218A-4F9C-9052-237EFB091D8C/data/Containers/Bundle/Application/ABD2DD0C-A269-479C-AEA7-C55E5622E82E/App.app/Frameworks/Cache.framework/Cache (0x10b356ed0). One of the two will be used. Which one is undefined.
    objc[2917]: Class _TtC5Cache18TransformerFactory is implemented in both /Users/user/Library/Developer/CoreSimulator/Devices/05ED95FA-218A-4F9C-9052-237EFB091D8C/data/Containers/Bundle/Application/ABD2DD0C-A269-479C-AEA7-C55E5622E82E/App.app/Frameworks/Imaginary.framework/Imaginary (0x10b74f990) and /Users/user/Library/Developer/CoreSimulator/Devices/05ED95FA-218A-4F9C-9052-237EFB091D8C/data/Containers/Bundle/Application/ABD2DD0C-A269-479C-AEA7-C55E5622E82E/App.app/Frameworks/Cache.framework/Cache (0x10b357388). One of the two will be used. Which one is undefined.
    objc[2917]: Class _TtC5Cache16ObservationToken is implemented in both /Users/user/Library/Developer/CoreSimulator/Devices/05ED95FA-218A-4F9C-9052-237EFB091D8C/data/Containers/Bundle/Application/ABD2DD0C-A269-479C-AEA7-C55E5622E82E/App.app/Frameworks/Imaginary.framework/Imaginary (0x10b74f7d8) and /Users/user/Library/Developer/CoreSimulator/Devices/05ED95FA-218A-4F9C-9052-237EFB091D8C/data/Containers/Bundle/Application/ABD2DD0C-A269-479C-AEA7-C55E5622E82E/App.app/Frameworks/Cache.framework/Cache (0x10b3575d0). One of the two will be used. Which one is undefined.
    objc[2917]: Class _TtC5Cache13MemoryCapsule is implemented in both /Users/user/Library/Developer/CoreSimulator/Devices/05ED95FA-218A-4F9C-9052-237EFB091D8C/data/Containers/Bundle/Application/ABD2DD0C-A269-479C-AEA7-C55E5622E82E/App.app/Frameworks/Imaginary.framework/Imaginary (0x10b74e6f0) and /Users/user/Library/Developer/CoreSimulator/Devices/05ED95FA-218A-4F9C-9052-237EFB091D8C/data/Containers/Bundle/Application/ABD2DD0C-A269-479C-AEA7-C55E5622E82E/App.app/Frameworks/Cache.framework/Cache (0x10b3566b0). One of the two will be used. Which one is undefined.
    

    I'm not sure how to solve this... I'm using Carthage. When I don't link to either the Imaginary or Cache libraries, Lightbox doesn't install and causes a missing image error.

    opened by yspreen 5
  • LightBox won't resolve in SPM

    LightBox won't resolve in SPM

    It appears that Lightbox is dependant on an unstable package from the error messages I'm getting trying to add it to a project via SPM:

    Dependencies could not be resolved because package 'lightbox' is required using a stable-version but 'lightbox' depends on an unstable-version package 'imaginary' and root depends on 'lightbox' 2.4.0.
    ``
    
    So far tried v2.5.0 and 2.4.2 and 2.4.0. Is there one that will work?
    opened by drekka 1
  • Presenting LightBoxController doesn't work.

    Presenting LightBoxController doesn't work.

    I've updated to the latest version, I saw in previous version that this issue was resolved. However, it isn't solved yet. App freezes when presenting LightBoxController.

    opened by iamimsh 1
  • Multiple images and video in the array loop

    Multiple images and video in the array loop

    How to construct the below array in for loop as i need to append all my photo library items to show in the slider like inbuilt iphone.

    let images = [ LightboxImage(imageURL: URL(string: "https://cdn.arstechnica.net/2011/10/05/iphone4s_sample_apple-4e8c706-intro.jpg")!), LightboxImage( image: UIImage(named: "photo1")!, text: "This is an example of a remote image loaded from URL" ), LightboxImage( image: UIImage(named: "photo2")!, text: "", videoURL: URL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4") ), LightboxImage( image: UIImage(named: "photo3")!, text: "This is an example of a local image." ) ]

    opened by DharaniDevApp 0
  • Delete Item Notification

    Delete Item Notification

    This is awesome library to show images.

    I am missing the one of the extra functionality, which is more helpful for the developers. If you add the delete Notification (delegate). To delete item notification if you can implement this in function just before deleting the item from "initialImages" collection.

    Method: func headerView(_ headerView: HeaderView, didPressDeleteButton deleteButton: UIButton) {

    Notification/Delegate: pageDelegate?.lightboxController(self, willDeleteItem: initialImages[prevIndex], at: prevIndex)

    opened by mhamidg 0
  • Installation with SPM fails

    Installation with SPM fails

    New year, new project involving LightBox ;)

    Since #250 seems to be fixed now with SPMs new resource integration, and iOS 13 is gaining more adoption anyway, I'd love to use SPM to install the module. However, it currently fails with this error:

    Dependencies could not be resolved because root depends on 'Lightbox' 2.5.0..<3.0.0.
    'Lightbox' >= 2.5.0 cannot be used because no versions of 'Lightbox' match the requirement 2.5.1..<3.0.0 and package 'lightbox' is required using a stable-version but 'lightbox' depends on an unstable-version package 'imaginary'.
    
    
    opened by yspreen 1
Releases(2.5.0)
  • 2.5.0(Oct 4, 2020)

  • 2.4.2(Jul 10, 2020)

  • 2.4.1(Jun 22, 2020)

  • 2.4.0(Jun 22, 2020)

  • 2.3.0(Sep 27, 2018)

  • 2.1.2(Jan 2, 2018)

    🚀 Merged pull requests

    • Fix footer counter https://github.com/hyperoslo/Lightbox/pull/163, by rinat-enikeev
    • Carthage compatibility https://github.com/hyperoslo/Lightbox/pull/167, by vincentsaluzzo
    • Fix footer frame https://github.com/hyperoslo/Lightbox/pull/172, by onmyway133

    🤘 Closed issues

    • Live Demo not working.. https://github.com/hyperoslo/Lightbox/issues/160
    • Crash on IOS 11.1.1 (15B150) https://github.com/hyperoslo/Lightbox/issues/162
    • Add save to Photo Album feature https://github.com/hyperoslo/Lightbox/issues/100
    • Add buttons https://github.com/hyperoslo/Lightbox/issues/98
    • Playing Local Videos https://github.com/hyperoslo/Lightbox/issues/158
    • Unwinds back to rootviewcontroller instead of presentingViewController https://github.com/hyperoslo/Lightbox/issues/169
    • Custom buttons at the bottom https://github.com/hyperoslo/Lightbox/issues/164
    • LightboxConfig is global? https://github.com/hyperoslo/Lightbox/issues/170
    • Page label doesn't show up on Portrait mode. https://github.com/hyperoslo/Lightbox/issues/168
    • FooterView doesn't show up at start https://github.com/hyperoslo/Lightbox/issues/159
    • How to show page label https://github.com/hyperoslo/Lightbox/issues/166
    Source code(tar.gz)
    Source code(zip)
  • 2.1.1(Nov 21, 2017)

    🚀 Merged pull requests

    • Add test https://github.com/hyperoslo/Lightbox/pull/157, by onmyway133
    • Use view.bounds instead of UIApplicationDelegate.window.bounds https://github.com/hyperoslo/Lightbox/pull/156, by andreyrd

    🤘 Closed issues

    • README outdated? https://github.com/hyperoslo/Lightbox/issues/148
    • Using UIWindow for layout size https://github.com/hyperoslo/Lightbox/issues/150
    • Close button overlaps with status bar in iPhone X https://github.com/hyperoslo/Lightbox/issues/153
    Source code(tar.gz)
    Source code(zip)
  • 2.1.0(Nov 17, 2017)

    🚀 Merged pull requests

    • Use String directly instead of String.characters https://github.com/hyperoslo/Lightbox/pull/152, by andreyrd
    • Update layout for iPhone X https://github.com/hyperoslo/Lightbox/pull/154, by onmyway133
    • Allow custom download https://github.com/hyperoslo/Lightbox/pull/155, by onmyway133

    🤘 Closed issues

    • SwiftHash is missing in Carthage-Build https://github.com/hyperoslo/Lightbox/issues/146
    • launching on ipad landscape view default preview layer input is portrait https://github.com/hyperoslo/Lightbox/issues/151
    • Value of type 'Image' has no member 'uimage' https://github.com/hyperoslo/Lightbox/issues/149
    • README outdated? https://github.com/hyperoslo/Lightbox/issues/148
    Source code(tar.gz)
    Source code(zip)
  • 2.0.1(Nov 2, 2017)

    🚀 Merged pull requests

    • Refactored truncatedText getter to prevent occasional EXC_BREAKPOINT crash https://github.com/hyperoslo/Lightbox/pull/143, by bchrobot
    • Update Carthage https://github.com/hyperoslo/Lightbox/pull/147, by onmyway133

    🤘 Closed issues

    • Open ImagePicker or Gallery from Lightbox example https://github.com/hyperoslo/Lightbox/issues/141
    • pod update https://github.com/hyperoslo/Lightbox/issues/142
    • Build with compile issues. https://github.com/hyperoslo/Lightbox/issues/140
    Source code(tar.gz)
    Source code(zip)
  • 2.0.0(Oct 3, 2017)

  • 1.1.0(Oct 3, 2017)

  • 1.0.0(Dec 21, 2016)

Owner
HyperRedink
Connected creativity
HyperRedink
DTPhotoViewerController - A fully customizable photo viewer ViewController to display single photo or collection of photos, inspired by Facebook photo viewer.

DTPhotoViewerController Example Demo video: https://youtu.be/aTLx4M4zsKk DTPhotoViewerController is very simple to use, if you want to display only on

Tung Vo 277 Dec 17, 2022
Photo Browser / Viewer inspired by Facebook's and Tweetbot's with ARC support, swipe-to-dismiss, image progress and more

IDMPhotoBrowser IDMPhotoBrowser is a new implementation based on MWPhotoBrowser. We've added both user experience and technical features inspired by F

Thiago Peres 2.7k Dec 21, 2022
Swift image slideshow with circular scrolling, timer and full screen viewer

?? ImageSlideshow Customizable Swift image slideshow with circular scrolling, timer and full screen viewer ?? Example To run the example project, clon

Petr Zvoníček 1.7k Dec 21, 2022
A snappy image viewer with zoom and interactive dismissal transition.

A snappy image viewer with zoom and interactive dismissal transition. Features Double tap to zoom in/out Interactive dismissal transition Animate in f

Lucas 421 Dec 1, 2022
Slide image viewer library similar to Twitter and LINE.

Overview You can use it simply by passing the necessary information! Serrata is a UI library that allows you to intuitively view images. Features King

Takuma Horiuchi 324 Dec 9, 2022
A snappy image viewer with zoom and interactive dismissal transition.

A snappy image viewer with zoom and interactive dismissal transition. Features Double tap to zoom in/out Interactive dismissal transition Animate in f

Lucas 421 Dec 1, 2022
Agrume - 🍋 An iOS image viewer written in Swift with support for multiple images.

Agrume An iOS image viewer written in Swift with support for multiple images. Requirements Swift 5.0 iOS 9.0+ Xcode 10.2+ Installation Use Swift Packa

Jan Gorman 601 Dec 26, 2022
Image slide-show viewer with multiple predefined transition styles, with ability to create new transitions with ease.

ATGMediaBrowser ATGMediaBrowser is an image slide-show viewer that supports multiple predefined transition styles, and also allows the client to defin

null 200 Dec 19, 2022
An image viewer à la Twitter

For the latest changes see the CHANGELOG Install CocoaPods pod 'ImageViewer' Carthage github "Krisiacik/ImageViewer" Sample Usage For a detailed examp

Kristian Angyal 2.4k Dec 29, 2022
A smart and easy-to-use image masking and cutout SDK for mobile apps.

TinyCrayon SDK for iOS A smart and easy-to-use image masking and cutout SDK for mobile apps. TinyCrayon SDK provides tools for adding image cutout and

null 1.8k Dec 30, 2022
Very easy to use image loader for swift

Silo Silo is a extremely easy to use and very basic image loader for iOS built in Swift. if you use Silo in your project please let me know! Version 2

Jose Quintero 17 Dec 17, 2022
A simple mesh viewer for MacOS based on Swift and Metal and using Assimp for loading meshes

Metal Mesh Viewer A simple triangle mesh viewer for MacOS This application is a simple (triangle) mesh viewer that should be capable of rendering even

J. Andreas Bærentzen 0 Dec 13, 2021
An iOS/tvOS photo gallery viewer, useful for viewing a large (or small!) number of photos.

This project is unmaintained. Alex passed away in an accident in late 2019. His love of iOS development will always be remembered. AXPhotoViewer AXPho

Alex Hill 596 Dec 30, 2022
Swift/iOS viewer for photography galleries or portfolios

Swift/iOS viewer for photography galleries or portfolios. The app is intended for photographers who participate in classical photo clubs: a portfolio covers (curated) images that were presented and critiqued within a photo club.

Peter van den Hamer 8 Dec 24, 2022
A complete Mac App: drag an image file to the top section and the bottom section will show you the text of any QRCodes in the image.

QRDecode A complete Mac App: drag an image file to the top section and the bottom section will show you the text of any QRCodes in the image. QRDecode

David Phillip Oster 2 Oct 28, 2022
Twitter Image Pipeline is a robust and performant image loading and caching framework for iOS clients

Twitter Image Pipeline (a.k.a. TIP) Background The Twitter Image Pipeline is a streamlined framework for fetching and storing images in an application

Twitter 1.8k Dec 17, 2022
Simple PhotoBrowser/Viewer inspired by facebook, twitter photo browsers written by swift

SKPhotoBrowser [![All Contributors](https://img.shields.io/badge/all_contributors-1-orange.svg?style=flat-square)](#contributors-) Simple PhotoBrowser

keishi suzuki 2.4k Jan 6, 2023
An image download extension of the image view written in Swift for iOS, tvOS and macOS.

Moa, an image downloader written in Swift for iOS, tvOS and macOS Moa is an image download library written in Swift. It allows to download and show an

Evgenii Neumerzhitckii 330 Sep 9, 2022
AsyncImage before iOS 15. Lightweight, pure SwiftUI Image view, that displays an image downloaded from URL, with auxiliary views and local cache.

URLImage URLImage is a SwiftUI view that displays an image downloaded from provided URL. URLImage manages downloading remote image and caching it loca

Dmytro Anokhin 1k Jan 4, 2023