MemeFactory.Core 1.0.0-alpha.16

This is a prerelease version of MemeFactory.Core.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package MemeFactory.Core --version 1.0.0-alpha.16
                    
NuGet\Install-Package MemeFactory.Core -Version 1.0.0-alpha.16
                    
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="MemeFactory.Core" Version="1.0.0-alpha.16" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MemeFactory.Core" Version="1.0.0-alpha.16" />
                    
Directory.Packages.props
<PackageReference Include="MemeFactory.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MemeFactory.Core --version 1.0.0-alpha.16
                    
#r "nuget: MemeFactory.Core, 1.0.0-alpha.16"
                    
#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.
#:package MemeFactory.Core@1.0.0-alpha.16
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MemeFactory.Core&version=1.0.0-alpha.16&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=MemeFactory.Core&version=1.0.0-alpha.16&prerelease
                    
Install as a Cake Tool

MemeFactory

A meme processing utility based on ImageSharp.

Install

<PackageReference Include="MemeFactory.Core" Version="1.0.0-alpha.13" />

Design

sequenceDiagram
    participant Service
    participant Sequence as Sequence
    participant Processor as AsyncLinq Operations
    Service ->> Service: prepare images
    Service ->> Sequence: convert Image to Sequence
    Sequence ->> Service: IAsyncEnumerable<Frame>
    Service ->> Processor: transform frames
    Processor ->> Processor: (optional) draw other image into frame
    Processor ->> Processor: (optional) expand frame
    Processor ->> Processor: (optional) or redraw every frame using AI!
    Processor ->> Service: final IAsyncEnumerable<Frame>
    Service ->> Sequence: Compose frame sequence to Image
    Sequence ->> Service: Image/Encoder/File Extensions

Usage

// load resources
using var baseImage = await Image.LoadAsync("resources/base.gif");
using var baseSequence = await baseImage.ExtractFrames()
    // the Sequence class can manage the disposal of all frames
    .ToSequenceAsync();

using var merry = await Image.LoadAsync("resources/merry.png");
using var punchSequence = await Frames
    .LoadFromFolderAsync("resources/punch")
    .Slow(times: 1)
    .ToSequenceAsync();

// process
using var result = await baseSequence  // layer 0: base sequence
    // compose each frame with an image
    .EachFrame(Composers.Draw(merry, Resizer.Auto, Layout.LeftBottom))
    // compose two sequence frame by frame
    .FrameBasedZipSequence(punchSequence.LcmExpand(),
        Composers.Draw(Resizer.Auto, Layout.RightCenter))
     // rotate all frame
    .Rotation()
    // generate final image
    .AutoComposeAsync();

// output
await result.Image.SaveAsync(@"result." + result.Extension, result.Encoder);
Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on MemeFactory.Core:

Package Downloads
MemeFactory.Ffmpeg

A meme processing utility that provides many tools to generate meme.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0-alpha.47 97 3/21/2025
1.0.0-alpha.46 129 3/19/2025
1.0.0-alpha.45 132 3/19/2025
1.0.0-alpha.44 130 3/19/2025
1.0.0-alpha.43 123 3/19/2025
1.0.0-alpha.42 130 3/19/2025
1.0.0-alpha.41 124 3/19/2025
1.0.0-alpha.40 128 3/19/2025
1.0.0-alpha.39 123 3/18/2025
1.0.0-alpha.38 127 3/18/2025
1.0.0-alpha.36 123 3/17/2025
1.0.0-alpha.35 124 3/17/2025
1.0.0-alpha.34 123 3/17/2025
1.0.0-alpha.32 120 3/17/2025
1.0.0-alpha.31 125 3/17/2025
1.0.0-alpha.30 127 3/16/2025
1.0.0-alpha.29 123 3/16/2025
1.0.0-alpha.28 125 3/16/2025
1.0.0-alpha.27 63 3/15/2025
1.0.0-alpha.26 57 3/15/2025
1.0.0-alpha.24 56 3/14/2025
1.0.0-alpha.23 58 3/14/2025
1.0.0-alpha.22 62 3/14/2025
1.0.0-alpha.21 60 3/14/2025
1.0.0-alpha.20 58 3/14/2025
1.0.0-alpha.19 75 3/14/2025
1.0.0-alpha.18 83 3/14/2025
1.0.0-alpha.17 108 3/14/2025
1.0.0-alpha.16 105 3/14/2025
1.0.0-alpha.14 125 3/13/2025
1.0.0-alpha.13 143 3/12/2025
1.0.0-alpha.12 142 3/12/2025
1.0.0-alpha.11 135 3/12/2025
1.0.0-alpha.10 127 3/12/2025
1.0.0-alpha.9 139 3/12/2025
1.0.0-alpha.8 144 3/12/2025
1.0.0-alpha.7 139 3/12/2025
1.0.0-alpha.6 139 3/12/2025
1.0.0-alpha.5 136 3/12/2025
1.0.0-alpha.4 140 3/12/2025
1.0.0-alpha.3 131 3/12/2025
1.0.0-alpha.1 147 3/11/2025