WP7+ fast and powerfull image loader with memory and storage caching for your projects!
C#
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
JetImageLoader.Wp7 Windows Phone 7 csproj Apr 5, 2014
JetImageLoader
JetImageLoaderSample
Releases
.gitignore
LICENSE
README.md

README.md

JetImageLoader load, cache, show, do it again!

Fast and powerful image loader with memory and storage caching for your Windows Phone 7+ projects!

(Many ideas were taken from UniversalImageLoader for Android)

Like a boss:

  • Load images
  • Cache them in memory
  • Cache them on storage
  • Do it asynchronously

sample screenshot

Why JetImageLoader is super?

0) It was created to work as Converter! Look:

<Image Source="{Binding YourImageUri, Converter={StaticResource MyAppJetImageLoaderConverter}}"/>
WOW, yeah? Super awesome!

How to add && configure JetImageLoader in your project?

1) Easy to add to your project and start using it in only 4 simple steps:

  • 1.1) Add reference to JetImageLoader.dll or use nuget: PM> Install-Package WP-JetImagLoader
  • 1.2) Extend JetImageLoaderConverter and configure it:
    public class MyAppJetImageLoaderConverter : BaseJetImageLoaderConverter
    {
        protected override JetImageLoaderConfig GetJetImageLoaderConfig()
        {
            return new JetImageLoaderConfig.Builder
            {
                IsLogEnabled     = true,
                CacheMode        = CacheMode.MemoryAndStorageCache,
                DownloaderImpl   = new HttpWebRequestDownloader(),
                MemoryCacheImpl  = new WeakMemoryCache(),
                StorageCacheImpl = new LimitedStorageCache(IsolatedStorageFile.GetUserStoreForApplication(), 
                                   "\image_cache", new SHA1CacheFileNameGenerator(), 1024 * 1024 * 10), // == 10 MB
            }.Build();
        }
    }
    
  • 1.3) Declare MyAppJetImageLoaderConverter in App.xaml:

    ````
    
    
    ...````
    
    • 1.4) Set it as Converter for Image:
      <Image Source="{Binding UserAvatarUrl, Converter={StaticResource MyAppJetImageLoaderConverter}}"/>
      

    aaand that is all, now it can load images from network, cache them in memory and storage and then load them from cache!

    2) You can use your own implementations:

    Downloader implementation    — just implement IDownloader interface
    Memory cache implementation  — just extend BaseMemoryCache abstract class
    Storage cache implementation — just extend BaseStorageCache abstract class
    

    3) JetImageLoader already has basic implementations for all this things:

    1 Downloader implemetation      — HttpWebRequestDownloader based on HttpWebRequest class
    1 Memory cache implementation   — WeakMemoryCache based on WeakRefDictionary with weak references
                                     and auto GC cleaning (very cool)
    2 Storage cache implementations — LimitedStorageCache with configurable limit in bytes to store on disk
                                     and stupid UnlimitedStorageCache implementation
    

    NuGet: PM> Install-Package WP-JetImagLoader