FFImageLoading.Maui 1.0.9

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package FFImageLoading.Maui --version 1.0.9                
NuGet\Install-Package FFImageLoading.Maui -Version 1.0.9                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FFImageLoading.Maui" Version="1.0.9" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add FFImageLoading.Maui --version 1.0.9                
#r "nuget: FFImageLoading.Maui, 1.0.9"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install FFImageLoading.Maui as a Cake Addin
#addin nuget:?package=FFImageLoading.Maui&version=1.0.9

// Install FFImageLoading.Maui as a Cake Tool
#tool nuget:?package=FFImageLoading.Maui&version=1.0.9                

FFImageLoading.Maui - Fast & Furious Image Loading for .NET MAUI

Forked from the amazingly popular original FFImageLoading Library, this Compat version FFImageLoading.Compat aims to ease your migration from Xamarin.Forms to .NET MAUI with a compatible implementation to get you up and running without rewriting the parts of your app that relied on the original library.

This Maui version which merges all Transformations & SVG library parts into ONE and is migrated from FFImageLoading.Compat aims to fix some critical bugs and gives you a place to submit Maui releated issues.

The Most CRITICAL bugs it aims to fix:

  1. [Fixed in 1.0.1][iOS] App Reloading Bug. (When a page contains a CachedImage which use local image file as LoadingPlaceholder, after tombstone the app to background and then recover it to forground, the app will be reloaded to the home page)
  2. [Fixed in 1.0.3][iOS] Google webp format image support. (It works in Xamarin.Forms version, but not in FFImageLoading.Compat)
  3. [Fixed in 1.0.7][Windows] Local images files will not show on Windows.

Thanks to the Original Authors: Daniel Luberda, Fabien Molinet & Redth.

Usage

  1. Install NuGet package: FFImageLoading.Maui NuGet
  2. Add .UseFFImageLoading() to your MAUI app builder.
public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder();
        builder
            .UseMauiApp<App>()
            .UseFFImageLoading()
            .ConfigureFonts(fonts =>
            {
                fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
                fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
            });

        return builder.Build();
    }
}
  1. Add xmlns:ffimageloading="clr-namespace:FFImageLoading.Maui;assembly=FFImageLoading.Maui" to your MAUI Xaml page references.
  2. Add <ffimageloading:CachedImage Source="xxx.jpg"></ffimageloading:CachedImage> to display image.

Support platforms

  • Android
  • iOS
  • MacCatalyst
  • Windows

Features

  • .NET MAUI (iOS, MacCatalyst, Android, Windows) support
  • Configurable disk and memory caching
  • Multiple image views using the same image source (url, path, resource) will use only one bitmap which is cached in memory (less memory usage)
  • Deduplication of similar download/load requests. (If 100 similar requests arrive at same time then one real loading will be performed while 99 others will wait).
  • Error and loading placeholders support
  • Images can be automatically downsampled to specified size (less memory usage)
  • Fluent API which is inspired by Picasso naming
  • SVG / WebP / GIF support
  • Image loading Fade-In animations support
  • Can retry image downloads (RetryCount, RetryDelay)
  • Android bitmap optimization. Saves 50% of memory by trying not to use transparency channel when possible.
  • Transformations support
    • BlurredTransformation
    • CircleTransformation, RoundedTransformation, CornersTransformation, CropTransformation
    • ColorSpaceTransformation, GrayscaleTransformation, SepiaTransformation, TintTransformation
    • FlipTransformation, RotateTransformation
    • Supports custom transformations (native platform ITransformation implementations)

Original Library Documentation

[Xamarin]https://github.com/luberda-molinet/FFImageLoading

[Maui]https://github.com/Redth/FFImageLoading.Compat

Release Notes

1.0.9

1.Fix Local file images do not appear when DownsampleToViewSize is set to true (Thanks Reported by https://github.com/CraigTenn)

1.0.8

1.Fix AspectFill images with an implicit height (Thanks PR by https://github.com/brendan-holly-modea)

1.0.7

1.Use Svg.Skia instead of custom code. (Thanks PR by https://github.com/PavloLukianets)

2.Fix Android MemoryCache re-creation issue. (Thanks PR by https://github.com/MichaelFrenkel)

3.Fixed NRE on ImageService caused before ready. (Thanks PR by https://github.com/NishiokaTakeo)

4.Fixed Local images files will not show on Windows. (Thanks Reported by https://github.com/Inrego)

5.Fixed AspectFill not working on Android for CachedImage control. (Thanks Reported by https://github.com/brendan-holly-modea)

6.Add Sample.Win project file.

1.0.5

1.Add .NET 8 support.

1.0.3

1.Fix Webp image not showing Bug.

1.0.1

1.Fix App Reloading Bug.

Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-android33.0 is compatible.  net7.0-ios was computed.  net7.0-ios16.1 is compatible.  net7.0-maccatalyst was computed.  net7.0-maccatalyst16.1 is compatible.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net7.0-windows10.0.19041 is compatible.  net8.0 is compatible.  net8.0-android was computed.  net8.0-android34.0 is compatible.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-ios17.2 is compatible.  net8.0-maccatalyst was computed.  net8.0-maccatalyst17.2 is compatible.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net8.0-windows10.0.19041 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net7.0

  • net7.0-android33.0

  • net7.0-ios16.1

  • net7.0-maccatalyst16.1

  • net7.0-windows10.0.19041

  • net8.0

  • net8.0-android34.0

  • net8.0-ios17.2

  • net8.0-maccatalyst17.2

  • net8.0-windows10.0.19041

NuGet packages (1)

Showing the top 1 NuGet packages that depend on FFImageLoading.Maui:

Package Downloads
PhotoBrowser.Maui

PhotoBrowser.Maui library for projects using .NET MAUI Full screen image viewer(.NET MAUI) that includes "pinch to zoom" and "swipe to dismiss" gestures. - PhotoBrowser.Maui

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on FFImageLoading.Maui:

Repository Stars
microspaze/FFImageLoading.Maui
FFImageLoading.Maui - Fast & Furious Image Loading for .NET MAUI
Version Downloads Last updated
1.2.7 27,561 8/29/2024
1.2.6 41,747 7/1/2024
1.2.5 23,323 5/21/2024
1.2.4 5,869 5/14/2024
1.2.3 1,628 5/5/2024
1.2.2 371 5/4/2024
1.2.1 12,408 4/20/2024
1.2.0 6,291 4/16/2024
1.1.9 924 4/16/2024
1.1.8 32,624 4/10/2024
1.1.7 109 4/10/2024
1.1.6 923 4/8/2024
1.1.5 268 4/7/2024
1.1.3 5,001 4/3/2024
1.1.2 2,087 3/27/2024
1.1.1 226 3/26/2024
1.1.0 47,412 2/29/2024
1.0.9 5,216 2/12/2024
1.0.8 3,021 2/6/2024
1.0.7 350 2/5/2024
1.0.6 10,589 12/19/2023
1.0.5 150 12/18/2023
1.0.3 6,433 9/11/2023