ImageSharp  

 
 

Библиотека C# .NET с открытым исходным кодом для 2D-графики

Чтение, запись, изменение, изменение размера и преобразование изображений PNG, JPEG, GIF и TIFF с использованием .NET API.

ImageSharp — это простая, но очень мощная кроссплатформенная библиотека с открытым исходным кодом для обработки файлов изображений внутри приложений C#. Это полностью управляемый и кроссплатформенный API 2D-графики, предназначенный для обработки изображений. ImageSharp — это библиотека обработки изображений с открытым исходным кодом, которая была выпущена с целью предоставить альтернативу API-интерфейсам System.Drawing.

Этот API является всеобъемлющим и поддерживает расширенные алгоритмы обработки изображений. API совершенствуется из года в год, чтобы обеспечить поддержку более продвинутой обработки изображений. Его единственная зависимость — это сам .NET, что делает его чрезвычайно переносимым. API включает поддержку расширенных функций, таких как изменение размера изображения, кодирование и декодирование изображения, декодирование только метаданных изображения, клонирование изображения, нанесение водяного знака на изображение, рисование текста вдоль контура и многое другое.

Previous Next

Начало работы с ImageSharp

Стабильная версия доступна на NuGet. Для бета-версий убедитесь, что переключатель Включить предварительную версию включен. Релизы разработки доступны через MyGet.

Установка ImageSharp через NuGet

Install-Package SixLabors.ImageSharp -Version number 

C# API для изменения размера изображений

Библиотека ImageSharp позволяет программистам C# .NET изменять размер изображений внутри своих собственных приложений .NET. Изменение размера изображения требует процесса генерации и повторения пикселей целевого изображения и областей выборки исходного изображения, чтобы выбрать, какой цвет реализовать для каждого пикселя. Вы можете легко установить алгоритм обработки изображений, таких как Bicubic, Hermite, Box, CatmullRom, Lanczos2 и другие. Помимо основных операций по изменению размера, ImageSharp также предлагает более продвинутые функции.

Изменение размера изображений через C# API

// Load File 
using (Image image = Image.Load("fileformat.jpg"))
{
  // Resize file 
  image.Mutate(x => x
      .Resize(image.Width / 2, image.Height / 2)
      .greyscale());
  // Save
  image.Save("fileformat_out.jpg");
}                
                  

Нарисовать водяной знак на изображении

Обычно люди защищают свои изображения, накладывая на них большой водяной знак, чтобы люди не могли использовать изображения без разрешения. Библиотека ImageSharp обеспечивает поддержку добавления водяных знаков к изображениям внутри приложений C++. Для начала вам понадобится семейство шрифтов, и вы можете легко получить его в магазине системных шрифтов. Нарисуйте текст поверх изображения и закрасьте его серым цветом с непрозрачностью 50%.

Рисовать текст вдоль пути и применить эффект к изображению

Библиотека ImageSharp позволяет разработчикам C# .NET рисовать текст по контурам пути. Рекомендуется создать коллекцию шрифтов. Во-первых, Let generates генерирует текст как набор векторов, нарисованных по пути. После рисования пути мы можем увидеть, что должен следовать текст. ImageSharp API также позволяет применять различные типы эффектов к изображениям только внутри формы.

Применение эффекта к изображениям


namespace CustomImageProcessor
{
    static class Program
    {
        static void Main(string[] args)
        {
            System.IO.Directory.CreateDirectory("output");
            using (Image image = Image.Load("fb.jpg"))
            {
                var outerRadii = Math.Min(image.Width, image.Height) / 2;
                var star = new Star(new PointF(image.Width / 2, image.Height / 2), 5, outerRadii / 2, outerRadii);
                using (var clone = image.Clone(p =>
                {
                    p.GaussianBlur(15); // apply the effect here you and inside the shape
                }))
                {
                    clone.Mutate(x => x.Crop((Rectangle)star.Bounds));
                    var brush = new ImageBrush(clone);
                    // cloned image with the effects applied
                    image.Mutate(c => c.Fill(brush, star));
                }
                image.Save("output/fb.png");
            }
        }
    }
}              
 Русский