Crop Image - Пример вырезания изображения с изменением размера и использованием библиотеки SixLabors.ImageSharp на .NET Core C#
Простой пример класса с методом для получения квадратного превью изображения в .NET Core, при помощи библиотеки SixLabors.ImageSharp.
Пример:
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.PixelFormats;
using System;
using SixLabors.ImageSharp.Formats.Jpeg;
namespace TransformImage.Methods
{
public static class ImgActions
{
public static void CropImage(string path, string path_in, int size)
{
try
{
// Открывает файл, определяет тип файла и декодирует
using (Image<Rgba32> image = Image.Load(path))
{
// Теперь изображение находится в независимой от формата файла структуре в памяти как серия Rgba32 пикселей
int line = image.Height < image.Width ? image.Height : image.Width;
// Вырезаем часть изображения (квадрат по минимальной стороне)
image.Mutate(tx => tx.Crop(line, line));
// Изменяем размер изображения
image.Mutate(ctx => ctx.Resize(size, size));
// Записываем в заданном формате с указанным качеством, без метаданных для экономии места
image.Save(path_in,new JpegEncoder{Quality = 100, IgnoreMetadata = true});
}
}
catch (Exception ex)
{
Program.logger.Error(ex, ex.Message);
}
}
}
}
Сама библиотека находится здесь.
Вот и всё.