Обработка изображений, в частности изменение размера или редактирование изображений, является общим требованием для веб-приложений, мобильных и настольных приложений. Таким образом, мы хотели перечислить варианты, которые существуют для платформы .NET для обработки цифровых изображений. Что еще более важно, мы перечисляем только доступные варианты с открытым исходным кодом.

System.Drawing

Если у вас уже есть код, основанный на System.Drawing, использование этой библиотеки — самый быстрый путь к .NET Core. Производительность и качество в порядке, и API точно такой же. Встроенные System.Drawing API — это самый простой способ обработки изображений с помощью .NET Framework, но они полагаются на функции GDI+ из Windows, которые не включены в .NET Core, и представляют собой клиентскую технологию, которая никогда не предназначалась для многопоточной обработки. серверные среды. Существуют проблемы с блокировкой, которые могут сделать это решение непригодным для ваших приложений.

ImageSharp

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

Разработан с нуля, чтобы быть гибким и расширяемым. Библиотека предоставляет конечные точки API для общих операций обработки изображений и строительные блоки, позволяющие разрабатывать дополнительные операции.

Построенный на основе .NET Standard 1.3, ImageSharp можно использовать в сценариях устройств, облака и встроенных устройств/IoT.

Его производительность не так хороша, как у библиотек, использующих собственные зависимости от ОС, но она остается очень приемлемой. Его единственная зависимость — это сам .NET, что делает его чрезвычайно переносимым: нет необходимости устанавливать дополнительный пакет, просто сошлитесь на сам ImageSharp, и все готово.

Magick.NET

ImageMagick — это мощная библиотека для работы с изображениями, которая поддерживает более 100 основных форматов файлов (не считая подформатов). С Magick.NET вы можете использовать ImageMagick в своем приложении C#/VB.NET/.NET Core без необходимости устанавливать ImageMagick на свой сервер или рабочий стол.

Поддерживаемые платформы

  • .NET Framework (2.0 и выше)
  • .NET Core (.NET Standard 1.3 и выше на Windows, Linux и macOS)

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

СкиаШарп

SkiaSharp — это кроссплатформенный API 2D-графики для платформ .NET, основанный на графической библиотеке Google Skia (skia.org). Он предоставляет комплексный 2D API, который можно использовать в мобильных, серверных и настольных моделях для рендеринга изображений.

SkiaSharp предоставляет кроссплатформенные привязки для:

  • .NET Стандарт 1.3
  • .NET ядро
  • Тизен
  • Xamarin.Android
  • Xamarin.iOS
  • Xamarin.tvОС
  • Xamarin.watchOS
  • Xamarin.Mac
  • Классический рабочий стол Windows (Windows.Forms/WPF)
  • Windows UWP (настольный/мобильный/Xbox/HoloLens)
  • Веб-сборка (WASM)

Документация по API доступна для просмотра в Интернете.

Процессор изображений

ImageProcessor — это набор облегченных библиотек, написанных на C#, который позволяет вам манипулировать изображениями на лету с помощью .NET 4.5+.

Он состоит из двух основных библиотек ImageProcessor — для использования на рабочем столе и в приложениях и ImageProcessor.Web — расширения для динамической обработки изображений, созданного для ASP.NET.

Он очень быстрый, расширяемый, простой в использовании, поставляется в комплекте с некоторыми замечательными функциями и полностью с открытым исходным кодом.

Если вам известна известная библиотека для обработки изображений, отличная от указанной выше, для использования с .NET или .NET Core, сообщите нам об этом ниже в комментариях.