spectre.console/docs/input/widgets/canvas-image.md
Phil Scott 223642b797
Add blog to docs (#484)
* Adding social card infrastructure
* Upgrades doc project to .NET 6
* Adds Playwright
* Changes the console to a web project for Playwright
* Adds social card template
* Added blog content
* Parallelized social image processing
* Updating CI to use .NET 6 for docs build
2021-07-15 19:53:01 +02:00

1.6 KiB

Title: Canvas Image Order: 70 Description: "Use ImageSharp to parse images and render them as Ascii art to the console."

To add ImageSharp superpowers to your console application to draw images, you will need to install the Spectre.Console.ImageSharp NuGet package.

> dotnet add package Spectre.Console.ImageSharp

Loading images

Once you've added the Spectre.Console.ImageSharp NuGet package, you can create a new instance of CanvasImage to draw images to the console.

// Load an image
var image = new CanvasImage("cake.png");

// Set the max width of the image.
// If no max width is set, the image will take
// up as much space as there is available.
image.MaxWidth(16);

// Render the image to the console
AnsiConsole.Render(image);

Result

Manipulating images

You can take full advantage of ImageSharp and manipulate images directly via it's Processing API.

// Load an image
var image = new CanvasImage("cake.png");
image.MaxWidth(32);

// Set a sampler that will be used when scaling the image.
image.BilinearResampler();

// Mutate the image using ImageSharp
image.Mutate(ctx => ctx.Grayscale().Rotate(-45).EntropyCrop());

// Render the image to the console
AnsiConsole.Render(image);

Result