spectre.console/docs/input/widgets/canvas-image.md
Phil Scott c2da268129
Docs redesign (#728)
* Adding a dark mode
* Adding reference for types to summary pages
* Adding API Reference
* Adding modifiers to methods/fields/etc
* Minimizing files input
* Caching a lot of the output pages
* Cache only for each execution
* Adding API references to existing docs
2022-02-14 18:44:25 +01:00

1.6 KiB

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

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.Write(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.Write(image);

Result