spectre.console/docs/input/widgets/canvas-image.md
2021-09-23 19:08:03 -04: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 its 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