Skip to content

Releases: luberda-molinet/FFImageLoading

FFImageLoading 2.1.2

05 Jun 17:17
Compare
Choose a tag to compare

This is a small release focused on performance and stability.

Complete history of changes available here: v2.1.1...v2.1.2

FFImageLoading 2.1.1

04 Jun 21:08
Compare
Choose a tag to compare

This is a small release focused on performance and stability.

Complete history of changes available here: v2.1...v2.1.1

FFImageLoading 2.1

18 May 20:49
Compare
Choose a tag to compare

Complete history of changes available here: v2.0.7...v2.1

This release contains a couple of breaking changes.

Breaking changes:

  • All obsolete methods have now been removed. New methods have similar names so it is easy to update your code.
  • Disk cache implementation moved from journal based to file system only (SimpleDiskCache). This change means that any cached content will have to be redownloaded. The path to cached data also changed, you might want to remove the old data.
  • Config.MaxCacheSize has been renamed to Config.MaxMemoryCacheSize
  • ImageService no longer offers static methods, instead of ImageService.xxx you should now use ImageService.Instance.xxx. Example: ImageService.LoadUrl() becomes ImageService.Instance.LoadUrl()
  • ImageService methods can be called from Xamarin Forms now and the API is much more consistent: same methods from iOS/Android/WP/Xamarin Forms. As such some CachedImage static methods have been removed:
    • ClearCacheAsync
    • SetPauseWork
    • DownloadImageAndAddToDiskCache
    • Equivalent methods are now in ImageService.Instance.xxx

New functionalities

  • Preload: when true the image is downloaded & cached. Nothing else happens.
  • Prioritization: it is now possible to define which images should be loaded first. Either enum based, with LoadingPriority, or int based.
  • Skip caching: memory cache, disk cache or both can be skipped. It allows downloading an image and assigning it directly to a view without caching (thanks @eladmarg !)
  • Delay: tasks can now be delayed. For example: it is now possible to start them after 100ms while scrolling.

Other

  • FFImageLoading now uses targets rather than specific views, a target receives the bitmap data and uses it, it allows more fine control of the data and how to use it. This is used to implement Preload.
  • MvvmCross bindable ImageView is now part of the standard nuget package. (thanks for your help @xleon !)
  • Few scheduler changes
  • A couple of extra checks (null, target valid, ...)
  • CropTransformation sample update to add pan/pinch gestures (thanks @phazlett !)
  • Windows Nuget package has been merged into the others. (thanks @ravensorb !)

FFImageLoading 2.0.7

02 Mar 17:06
Compare
Choose a tag to compare

Complete history of changes available here: v2.0.6...v2.0.7

Optimizations:

  • Perform all things on thread pool. Leave UI thread ASAP optimizations
  • iOS: Using ImageIO instead of UIImage withImageData for image resizing. More performant, thread safe, works in thread pool and avoids loading original images into memory.

Enhancements:

  • Xamarin.Forms nuget now supports Windows UWP
  • ImageService.Initialize method refactorings. It now uses Configuration class as a parameter. Old override is depreciated.
  • Android: Support for automatic rotation of images for File image sources basing on file EXIF data.
  • InvalidateCache has a new parameter removeSimilar, it's used to remove different variations of cache keys from MemoryCache (eg. different downsampling settings, different transformations, etc).
  • Success callbacks now return ImageInformation object which contains some informations about loaded image as: CurrentWidth, CurrentHeight, OriginalWidth, OriginalHeight, Path, FilePath, CacheKey
  • Added DownloadImageAndAddToDiskCacheAsync which provides a way to download & cache images without assigning to views (for later usage). #143
  • Xamarin.Forms: Added InvalidateCache overload with ImageSource type parameter
  • Xamarin.Forms: Added ReloadImage method
  • Added FadeAnimationForCachedImages and FadeAnimationDuration options
  • Transformations which use hex color string now support alpha channel on all platforms
  • Updated XF samples to use Xamarin.Forms 2.0, PageFactory 2.0 MVVM framework

Fixes:

  • Various memory leaks fixes to avoid CancellationTokenSource objects not being disposed / garbage collected.
  • Xamarin.Forms for Windows: FileImageSource compatibility improvements with Forms Image class
  • Fix #135: always invoke Success callback on main thread
  • Xamarin.Forms: System.MissingMethodException: No constructor found for CachedImageRenderer::.ctor(System.IntPtr, Android.Runtime.JniHandleOwnership)
  • #144 heap corruption detected by dlmalloc_real
  • Android: Removed some legacy ImageViewAsync code
  • Xamarin.Forms Removed some obsolete methods
  • Xamarin.Forms: Obsolete methods refactorings after Xamarin.Forms 2.0 update (generic bindable properties)
  • Some improvements to FFImageLoading.Cross.MvxImageLoadingView class

FFImageLoading 2.0.6

23 Jan 15:20
Compare
Choose a tag to compare

Complete history of changes available here: v2.0.5...v2.0.6

MORE PERFORMANCE:

  • iOS/Android/Windows: UI thread dispatchers performance optimization
  • iOS/Android/Windows: Big performance boost thanks to reduced allocations
  • iOS: DownloadCache no longer makes a dummy MemoryStream on iOS
  • Windows: Large memory usage and performance optimizations (switched from byte arrays to streams)
  • Windows: Intensive operations now use locking to avoid excessive memory/cpu usage
  • Minor improvements for rotation transformation

Enhancements:

  • Windows: Large FFImage control enhancements
  • Some minor enhancements

Fixes:

  • Fix images not loading from stream that doesn't have cache key
  • Windows: Fixed UWP GetForCurrentView must be called on a UI thread
  • Windows: Fixed NullException in DiskCache implementation
  • Android: Fixed wrong LoadingResult type in UrlStreamResolver
  • UWP crash when calling "GetImageAsJpgAsync" #128
  • WinRT assets not working in CachedImage
  • Some minor fixes

FFImageLoading 2.0.5

15 Jan 18:06
Compare
Choose a tag to compare

Complete history of changes available here: v2.0.4...v2.0.5

  • Fixed quite a major Windows Disk Cache bug: #125
  • Xamarin.Forms: Added bindable SuccessCommand, ErrorCommand, FinishCommand properties

FFImageLoading 2.0.4

14 Jan 14:53
Compare
Choose a tag to compare

Complete history of changes available here: v2.0.3...v2.0.4

  • Fixed some NullReferenceException
  • Fixed some issues with caching and loading from streams
  • Xamarin.Forms: Added CachedImage.SetPauseWork
  • Fixed LoadFromStream bug introduced with 2.0.3
  • Android: added some additional bitmap checks

FFImageLoading 2.0.3

07 Jan 16:54
Compare
Choose a tag to compare

Complete history of changes available here: v2.0.2...v2.0.3

  • Added Windows/Xamarin.Forms Silverlight support
  • Added possibility to specify custom cache keys
  • Added DownSampleInDip method for iOS/Android/Windows API - it allows to specify downsampling in device independent pixels
  • MvvmCross: Added MvxImageLoadingView that can be used as a MvxImageView replacement
  • iOS - Load images from files based on device scale @3x, @2x or normal
  • Windows memory cache optimizations and fixes
  • Some additional bug fixes eg: #113 #114 #115 #116
  • Some minor improvements

FFImageLoading 2.0.2

29 Dec 19:30
Compare
Choose a tag to compare

Complete history of changes available here v2...v2.0.2

This release mainly contains bug fixes and performance improvements.

Windows 10 & better UWP support

This version brings support for Windows 10 & a better UWP support thanks to @kalarepa

Issues & changes

  • A few fixes related to the new bitmap pool & bitmap recycling
  • Windows transformations have been improved
  • Forms: transformations property is now working in XAML
  • iOS supports loading from asset catalogs
  • Caching to disk is no longer blocking: images are displayed ASAP, file writes are queued
  • Finish callback is now invoked for similar requests
  • Invalidating a single cached item was buggy

FFImageLoading 2

19 Dec 19:27
Compare
Choose a tag to compare

Complete history of changes available here: v1.1.7...v2

Better Xamarin.Forms support & Windows Phone

This version brings support for Windows Phone (WinRT, UWP) and drastically improves Xamarin.Forms support.
Samples have also been reworked and demonstrate most features.

Better bitmap cache & pool

Android bitmap cache and bitmap pool has been highly reworked based on https://github.com/rdio/tangoandcache
Benefits: fewer memory allocations, fewer garbage collections, and it fixes an issue where recycled bitmaps were reused. 25c96f7

Issues fixed

  • #55, #58, #60, #61, #63, #67, #91
  • A couple of potential issues are fixed by checks & locks
  • WebP images, on iOS, used to skip transformations b656ede

Transformations

Keep source image format

If the source image does not have transparency then the transformed image will be so too. #84
Remark: some transformations require transparency, ie: CircleTransformation, in this case it is automatically added.

New transformations

A lot of new transformations have been added

  • FlipTransformation
  • CornersTransformation
  • CropTransformation
  • RotateTransformation

Other

Better usage of web streams

There is a lock when decoding images to minimize the OutOfMemory exceptions while decoding. Therefore this lock is detrimental for performance with web streams. Hence it has been removed in that case. d2b5cee

DownSample on iOS

Reducing image size is now also working on iOS. This allows reducing memory usage.

Cache control

It is now possible to invalide the memory cache or disk cache.

Load from stream

The image can be loaded from an existing Stream. In this case the image is not cached in memory.
Please note that the Stream is automatically closed.

ImageService.LoadStream(originalStream).Into(_imageView);

Cancellation does not log

Cancelled tasks are no longer logging to the console. This was causing a lot of undesired extra output. #68