PINRemoteImage - A thread safe, performant, feature rich image fetcher

  •        291

PINRemoteImageManager is an image downloading, processing and caching manager. It uses the concept of download and processing tasks to ensure that even if multiple calls to download or process an image are made, it only occurs one time (unless an item is no longer in the cache). PINRemoteImageManager is backed by GCD and safe to access from multiple threads simultaneously. It ensures that images are decoded off the main thread so that animation performance isn't affected. None of its exposed methods allow for synchronous access. However, it is optimized to call completions on the calling thread if an item is in its memory cache. PINRemoteImage supports downloading many types of files. It, of course, supports both PNGs and JPGs. It also supports decoding WebP images if Google's library is available. It even supports GIFs via returning FLAnimatedImages if it's compiled in (though this can be disabled).

https://github.com/pinterest/PINRemoteImage

Tags
Implementation
License
Platform

   




Related Projects

iOS-WebP - Google's WebP image format decoder and encoder for iOS

  •    Objective-C

Google's WebP image format offers better compression compared to PNG or JPEG, allowing apps to send/retrieve images with smaller file sizes, reducing request times and hopefully provide a better user experience. #Usage Don't forget to #import <iOS-WebP/UIImage+WebP.h>. There are 3 methods in iOS-WebP, converting images to WebP format, converting images from WebP format, and setting an image's transparency.

laravel-image-optimizer - Optimize images in your Laravel app

  •    PHP

This package is the Laravel 5.4 and up specific integration of spatie/image-optimizer. It can optimize PNGs, JPGs, SVGs and GIFs by running them through a chain of various image optimization tools. The package will automatically detect which optimization binaries are installed on your system and use them. The package also contains a middleware to automatically optimize all images in an request.

ImageButter - Makes dealing with images buttery smooth.

  •    C

Image viewer for iOS that supports WebP. What is WebP? Find out more here. You can find more about why we created this here.

Mad Kow Image Converter

  •    

Convert image files to BMPs, JPGs, GIFs, PNGs, TIFs, and WMFs. Allows for the selection of individual files or all of the files contained in the selected directory.

lilliput - Resize images and animated GIFs in Go

  •    C++

lilliput resizes images in Go. Lilliput relies on mature, high-performance C libraries to do most of the work of decompressing, resizing and compressing images. It aims to do as little memory allocation as possible and especially not to create garbage in Go. As a result, it is suitable for very high throughput image resizing services.


react-native-masonry - :raised_hands: A pure JS react-native component to render a masonry~ish layout for images with support for dynamic columns, progressive image loading, device rotation, on-press handlers, and headers/captions

  •    Javascript

"Bricks" are the basic building block of the masonry and are passed into the props.bricks. They essentially represent the items within each column and require a uri property at a minimum. However, you can freely add additional properties to the data property if you need access to certain data within your brick.onPress handler and footer/header renderer. The following properties are available.

Nuke - A powerful image loading and caching system

  •    Swift

A powerful image loading and caching system. It makes simple tasks like loading images into views extremely simple, while also supporting more advanced features for more demanding apps. Upgrading from the previous version? Use a Migration Guide.

AnimatedGIFImageSerialization - Complete Animated GIF Support for iOS, with Functions, NSJSONSerialization-style Class, and (Optional) UIImage Swizzling

  •    Objective-C

AnimatedGIFImageSerialization decodes an UIImage from Animated GIFs image data, following the API conventions of Foundation's NSJSONSerialization class. As it ships with iOS, UIImage does not support decoding animated gifs into an animated UIImage. But so long as ANIMATED_GIF_NO_UIIMAGE_INITIALIZER_SWIZZLING is not #define'd, the this library will swizzle the UIImage initializers to automatically support animated GIFs.

WebPImageSerialization - Complete WebP Support for iOS, with Functions, NSJSONSerialization-style Class, and (Optional) UIImage Swizzling

  •    C

WebPImageSerialization encodes and decodes between UIImage and WebP image data, following the API conventions of Foundation's NSJSONSerialization class. Keen on C functions, are you? Well, WebPImageSerialization provides functions as well, for creating a UIImage from data, and generating a WebP representation of an existing UIImage.

Concorde - Download and decode progressive JPEGs on iOS.

  •    Objective-C

This is a framework for downloading and decoding progressive JPEGs easily on iOS and OS X. It uses libjpeg-turbo as underlying JPEG implementation. We vendor version 1.4.0 of the static library from libjpeg-turbo's official release for convenience. and replace your usage of UIImageView with CCBufferedImageView to automatically use progressive JPEGs if you have been using the UIImageView category before. This will work regardless of the original format of your files due to the image transformation functionality of the delivery API.

APNGKit - High performance and delightful way to play with APNG format in iOS.

  •    Swift

APNGKit is a high performance framework for loading and displaying APNG images in iOS and macOS. It's built on top of a modified version of libpng with APNG support and written in Swift. High-level abstractions of Cocoa Touch is used for a delightful API. Since be that, you will feel at home and joy when using APNGKit to play with images in APNG format. The Animated Portable Network Graphics (APNG) is a file format extending the well-known PNG format. It allows for animated PNG files that work similarly to animated GIF files, while supporting 24-bit images and 8-bit transparency not available for GIFs. This means much better quality of animation. At the same time, the file size is comparable to or even less than, if created carefully, GIFs.

WebP for .NET

  •    DotNet

Google's WebP image compression format exposed to .NET WebP for .NET is the very first official release of Google's WebP format implementation for the Windows platform.

vue-progressive-image - Vue progressive image loading plugin

  •    Javascript

To be able to immediately show some feedback to the user, it is possible to pass a placeholder image, which could be also 1% the size of the main image: it will be blurred so you can go crazy with optimizations here. The progressive-background has a "content" slot, which can hold content that needs to be rendered over the background image and also can hold a preloader. This slot has one property called "visible" that tells you when, for example, a preloader needs to be visible or not.

YYImage - Image framework for iOS to display/encode/decode animated WebP, APNG, GIF, and more.

  •    Objective-C

A: Make sure you added the WebP.framework in your project. You may call YYImageWebPAvailable() to check whether the WebP subspec is installed correctly. A: You should disable the Compress PNG Files and Remove Text Metadata From PNG Files in your project's build settings. Or you can rename your APNG file's extension name with apng.

bimg - Small Go package for fast high-level image processing powered by libvips C library

  •    Go

Small Go package for fast high-level image processing using libvips via C bindings, providing a simple, elegant and fluent programmatic API.bimg was designed to be a small and efficient library supporting a common set of image operations such as crop, resize, rotate, zoom or watermark. It can read JPEG, PNG, WEBP natively, and optionally TIFF, PDF, GIF and SVG formats if libvips@8.3+ is compiled with proper library bindings.

PinterestSegment - A Pinterest-like segment control with masking animation.

  •    Swift

A Pinterest-like segment control with masking animation. Create a Cartfile that lists the framework and run carthage update. Follow the instructions to add $(SRCROOT)/Carthage/Build/iOS/PinterestSegment.framework to an iOS project.

SDWebImage - Asynchronous image downloader with cache support as a UIImageView category

  •    Objective-C

This library provides an async image downloader with cache support. For convenience, we added categories for UI elements like UIImageView, UIButton, MKAnnotationView. In order to keep SDWebImage focused and limited to the core features, but also allow extensibility and custom behaviors, during the 5.0 refactoring we focused on modularizing the library. As such, we have moved/built new modules to SDWebImage org.

react-progressive-image - React component for progressive image loading

  •    Javascript

If you use the UMD build you can find the library on window.ReactProgressiveImage.react-progressive-image exports a single React component, ProgressiveImage, which takes a src and placeholder prop, as well as an optional onError function.

NSGIF - 🔮 iOS Library for converting videos to animated GIFs.

  •    Objective-C

NSGIF is an iOS Library for converting your videos into beautiful animated GIFs. Check out this example. Sometimes we need to deal with GIFs in Cocoa. This can really be a pain in the ass (believe me). And here comes our hero . Breaking through errors and glitches and generating smooth GIFs 💨.

Sharp - High performance Node.js image processing

  •    Javascript

The typical use case for this high speed Node.js module is to convert large images in common formats to smaller, web-friendly JPEG, PNG and WebP images of varying dimensions.Resizing an image is typically 4x-5x faster than using the quickest ImageMagick and GraphicsMagick settings.