Выпущена новая версия 12.0 VintaSoft Imaging .NET SDK

Категория: Imaging.NET

27 июня 2022

Мы с гордостью объявляем о выпуске новой основной версии 12.0 VintaSoft Imaging .NET SDK и связанных с ней плагинов Annotation, PDF, JBIG2, JPEG2000, Document Cleanup, OCR, DICOM, Forms Processing и Office.


Первая и наиболее важная новая функция в этой версии - кросс-платформенная поддержка для Windows, Linux и macOS в .NET 6, .NET 5 и .NET Core 3.1.

VintaSoft Imaging .NET SDK - это .NET SDK для обработки изображений и документов. SDK состоит из большого количества алгоритмов, практически все алгоритмы написаны на языке C# и не зависят от платформы выполнения. Исключением являются алгоритмы для работы с двухмерной графикой - VintaSoft Imaging .NET SDK 11.0 и предыдущие версии используют библиотеку System.Drawing.Common от компании Microsoft для работы с двухмерной графикой.

Библиотека System.Drawing.Common имеет хорошую производительность и работает только в Windows.

Начиная с .NET Core компания Microsoft пыталась создать кросс-платформенную версию библиотеки System.Drawing.Common. Мы рассчитывали, что сможем использовать кросс-платформенную версию библиотеки System.Drawing.Common и тем самым сможем предоставить кросс-платформенную поддержку в VintaSoft Imaging .NET SDK.

К сожалению в начале 2022 года компания Microsoft объявила, что она прекращает попытки создать кросс-платформенную версию библиотеки System.Drawing.Common. Компания Microsoft заявила, что библиотека System.Drawing.Common отныне является только библиотекой для Windows и предложила разработчикам использовать сторонние библиотеки для работы с двухмерной графикой. Вышеизложенная информация может быть найдена в статье "System.Drawing.Common поддерживается только в Windows".

Мы начали тестировать сторонние библиотеки для работы с двухмерной графикой, когда мы поняли, что мы не сможем использовать библиотеку System.Drawing.Common для создания кросс-платформенной версии SDK. Наши тесты показали, что библиотека SkiaSharp от компании Google является быстрой и профессиональной библиотекой для работы с двухмерной графикой.

Мы полностью пересмотрели все алгоритмы, которые работают с двухмерной графикой и теперь SDK рисует двухмерную графику с помощью движка рисования (класса Vintasoft.Imaging.Drawing.DrawingEngine) и больше напрямую не использует библиотеку System.Drawing.Common.

В версии 12.0 мы создали два движка рисования для Windows, Linux и macOS.

Первый движок рисования создан на базе библиотеки SkiaSharp и является кросс-платформенным движком рисования для Windows, Linux и macOS. Движок рисования находится в сборке Vintasoft.Imaging.Drawing.Skia.dll.

Второй движок рисования создан на базе библиотеки System.Drawing.Common и может быть использован только в Windows. Движок рисования находится в сборке Vintasoft.Imaging.Gdi.dll.

Для работы SDK не требуется движок рисования, если SDK не работает с двухмерной графикой и не рисует текст. Например, SDK не нужен движок рисования для загрузки растрового изображения (TIFF, PNG, JPEG, DICOM, ...) с файла или получения метаданных изображения.

Для работы SDK требуется движок рисования, если SDK работает с двухмерной графикой и/или рисует текст. Например, SDK нужен движок рисования для рендеринга PDF, DOCX, XLSX страниц и для поворота или масштабирования изображения.

В общем случае нужно выбрать и подключить движок рисования к SDK, что сделать очень просто. Если Вам необходимо создать приложение только для Windows, подключите сборку Vintasoft.Imaging.Gdi.dll к Вашему приложению. Если Вам необходимо создать приложение для Windows, Linux и macOS, подключите сборку Vintasoft.Imaging.Drawing.Skia.dll и nuget-пакет SkiaSharp 2.88.0 к Вашему приложению.

Наши функциональные, регрессионные и технические тесты показали, что SDK работает одинаково в .NET 6 на Windows 10, Ubuntu Desktop 20.04.3 и macOS 12 "Monterey".



Вторым важным новшеством этой версии является возможность векторного рендеринга PDF, DOCX и XLSX документов в веб просмотрщике изображений.
Ранее веб просмотрщик рендерил отдельные тайлы для страницы документа для каждого масштаба, в котором требовалось отобразить документ. Теперь веб просмотрщик рендерит страницу документа в виде SVG-контента один раз и масштабирует отрендеренный векторный SVG-контент когда нужно отобразить документ в новом масштабе. Применение векторного рендеринга существенно увеличило скорость отображения документов в веб просмотрщике и существенно снизило нагрузку на веб сервер (теперь веб сервер рендерит страницу один раз, а раньше приходилось рендерить тайлы страницы много раз).

Векторный рендеринг в веб просмотрщике изображений можно включить/выключить с помощью функции Vintasoft.Imaging.UI.WebImageViewerJS.set_UseVectorRendering.
Вот скриншот из VintaSoft Web Document Viewer Demo, который демонстрирует настройки веб просмотрщика изображений с включенным векторным рендерингом для документов:
VintaSoft Imaging .NET SDK 12.0: Настройки веб просмотрщика изображений

Протестировать векторный рендеринг в веб просмотрщике можно с помощью онлайн демо приложения VintaSoft ASP.NET Core Document Viewer Demo: https://demos.vintasoft.com/AspNetCoreDocumentViewerDemo/


Больше информации о релизе VintaSoft Imaging .NET SDK 12.0 можно найти здесь: https://www.vintasoft.ru/vsimaging-dotnet-history.html