SoundInTheory.Piranha.MediaExtensions.Images 1.0.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package SoundInTheory.Piranha.MediaExtensions.Images --version 1.0.1                
NuGet\Install-Package SoundInTheory.Piranha.MediaExtensions.Images -Version 1.0.1                
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="SoundInTheory.Piranha.MediaExtensions.Images" Version="1.0.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SoundInTheory.Piranha.MediaExtensions.Images --version 1.0.1                
#r "nuget: SoundInTheory.Piranha.MediaExtensions.Images, 1.0.1"                
#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 SoundInTheory.Piranha.MediaExtensions.Images as a Cake Addin
#addin nuget:?package=SoundInTheory.Piranha.MediaExtensions.Images&version=1.0.1

// Install SoundInTheory.Piranha.MediaExtensions.Images as a Cake Tool
#tool nuget:?package=SoundInTheory.Piranha.MediaExtensions.Images&version=1.0.1                

Piranha Media Extensions

Various enhancements to Piranha CMS media

Cropped Image Field

An image field that allows multiple crops on a single image.

Only filesystem storage supported for now.

Supports cropping settings and multiple crops.

//In Piranha WebApplicationBuilder...
options.UseCroppedImageField();
//etc

//In PiranhaApplicationBuilder
options.UseCroppedImageField();
//etc

Then configure in Piranha content/model/etc

[Field, CroppedImageFieldSettings(AspectRatio = 16d / 9d, MinWidth = 100, MinHeight = 100, Crops = new string[] { "Default", "Second Crop" })]
public CroppedImageField TestImageFieldWithSettings { get; set; } 
[Field]
public CroppedImageField TestImageFieldWithoutSettings { get; set; }

Image Sharp Providers

Providers and resolvers for ImageSharp.Web

There is both a provider for Piranha Media and limited support for Remote Images as well.

Simply configure...

//In Piranha WebApplicationBuilder...
options.UseImageSharpForMedia((opts) =>
{
    opts
        //PhysicalFileSystemProvider cannot be first in the list. You can add it later on.
        .RemoveProvider<PhysicalFileSystemProvider>()

        .Configure<PiranhaMediaImageProviderOptions>(o => o.RootName = "/piranha-media")
        .AddProvider<PiranhaMediaImageProvider>()

        .Configure<RemoteImageProviderOptions>(o =>
        {
            o.RootName = "/remote";
            //A whitelist is necessary as it prevents any hijacking of your endpoint
            o.WhiteList = new List<string>()
            {
                "upload.wikimedia.org"
                //etc
            };
        })
        .AddProvider<RemoteImageProvider>();
});
//etc

//In PiranhaApplicationBuilder
options.UseImageSharpForMedia();
//etc

Field that supports multiple images

//In Piranha WebApplicationBuilder...
options.UseGalleryField();
//etc

//In PiranhaApplicationBuilder
options.UseGalleryField();
//etc

Then configure in Piranha content/model/etc

[Field]
public GalleryField TestGalleryField { get; set; }

//In your view/wherever you want to access
foreach(var image in TestGalleryField.Images){
//Use as if it's a normal image field.
}

Examples are provided in repo.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.1 199 7/4/2024
2.0.0 347 3/27/2024
1.0.3 178 4/18/2024
1.0.2 123 4/15/2024
1.0.1 146 3/15/2024
1.0.0 139 3/14/2024