VintaSoft Imaging .NET SDK 12.0 has been released

Blog category: Imaging.NET

June 27, 2022

We are proud to announce the release of new major version 12.0 of VintaSoft Imaging .NET SDK and related Annotation, PDF, JBIG2, JPEG2000, Document Cleanup, OCR, DICOM, Forms Processing and Office Plug-ins.


The first most important new feature of this version is the cross-platform support for Windows, Linux and macOS in .NET 6, .NET 5, .NET Core 3.1.

VintaSoft Imaging .NET SDK is a .NET SDK for processing of images and documents. The SDK consists from a big variety of algorithms, the majority of them are written in C# programming language and do not depend on execution platform. An exception are algorithms for working with two-dimensional graphics - previous versions of SDK used System.Drawing.Common library from Microsoft to work with two-dimensional graphics.

System.Drawing.Common library possesses a good performance and works under Windows only.

Starting from .NET Core, Microsoft tried to create a cross-platform version of System.Drawing.Common library. We expected that we could use the cross-platform version of the System.Drawing.Common library at some time point and thereby we'll be able to provide the cross-platform support in VintaSoft Imaging .NET SDK.

Unfortunately, at the beginning of 2022 Microsoft announced that it was ending its efforts to create a cross-platform version of System.Drawing.Common library. They announced that the System.Drawing.Common library is now a Windows-only library and suggested all developers to use third-party libraries to work with two-dimensional graphics. More details you can find in the article "System.Drawing.Common only supported on Windows".

We started our own testing of third-party 2D graphics libraries right away when we realized that we couldn't use the System.Drawing.Common library to create a cross-platform version of the SDK. And soon our tests showed that Google's SkiaSharp library was a rather fast and professional library for work with two-dimensional graphics.

We had completely revised all algorithms of work with 2D graphics and at final point the SDK started to draw 2D graphics using the drawing engine (Vintasoft.Imaging.Drawing.DrawingEngine class) and stopped using the System.Drawing.Common library directly.

In version 12.0 we created two drawing engines for Windows, Linux and macOS.

The first one is a cross-platform drawing engine based on SkiaSharp library for Windows, Linux and macOS. This drawing engine is located in Vintasoft.Imaging.Drawing.Skia.dll assembly.

The second one is a drawing engine based on System.Drawing.Common for Windows only. This drawing engine is located in Vintasoft.Imaging.Gdi.dll assembly.

The SDK does not require to use a drawing engine if it doesn't work with 2D graphics and/or it doesn't draw a text. For example, the SDK does not require a drawing engine to load a raster image (TIFF, PNG, JPEG, DICOM, etc) from file or to get metadata of image.

The SDK requires to use a drawing engine if it works with 2D graphics and/or it draws a text. For example, the SDK requires a drawing engine to render PDF, DOCX, XLSX pages and for rotation or scaling of images.

In general case it is necessary to select and connect a drawing engine to the SDK, that's very easy to do. If you are going to create a Windows-only application then add reference to Vintasoft.Imaging.Gdi.dll assembly to your application. If you are going to create an application for Windows, Linux and macOS then add reference to Vintasoft.Imaging.Drawing.Skia.dll assembly and nuget-packet SkiaSharp 2.88.0 to your application.

Our functional, regression and technical tests showed us that the SDK works the same way in .NET 6 on Windows 10, Ubuntu Desktop 20.04.3 and macOS 12 "Monterey".



The second important new feature of this release is the ability of vector rendering of PDF, DOCX and XLSX documents in web image viewer.
Previously the web image viewer rendered separate tiles of page for each differnt zoom in web image viewer. Now the web image viewer renders the document page as SVG content at once and then it scales the rendered vector SVG content when needed to display the document in a new zoom. The usage of vector rendering has significantly increased the speed of document display in web browser and also significantly reduced the web server loading (now the web server renders the page only once, and before it was necessary to render the tiles of the page many times).

The vector rendering in the web image viewer can be enabled/disabled using Vintasoft.Imaging.UI.WebImageViewerJS.set_UseVectorRendering function.
Here is a screenshot of VintaSoft Web Document Viewer Demo, which shows the settings of web image viewer with enabled vector rendering:
VintaSoft Imaging .NET SDK 12.0: Web Image Viewer Settings

You can quickly test the work of vector rendering in web image viewer using VintaSoft ASP.NET Core Document Viewer Demo: https://demos.vintasoft.com/AspNetCoreDocumentViewerDemo/


More release information about version 12.0 of VintaSoft Imaging .NET SDK you can find here: https://www.vintasoft.com/vsimaging-dotnet-history.html