VintaSoft Imaging .NET SDK 12.0 foi lançado

Categoria do blog: Imagens.NET

27.06.2022

Temos o orgulho de anunciar o lançamento da nova versão principal 12.0 do VintaSoft Imaging .NET SDK e dos plug-ins relacionados (Annotation, PDF, JBIG2, JPEG2000, Document Cleanup, OCR, DICOM, Forms Processing, Office).


A primeira e mais importante novidade desta versão é o suporte multiplataforma para Windows, Linux e macOS em .NET 6, .NET 5 e .NET Core 3.1.

O VintaSoft Imaging .NET SDK é um SDK .NET para processamento de imagens e documentos. O SDK consiste em uma grande variedade de algoritmos, a maioria deles escritos em linguagem de programação C# e independentes da plataforma de execução. Uma exceção são os algoritmos para trabalhar com gráficos bidimensionais - as versões anteriores do SDK utilizavam a biblioteca System.Drawing.Common da Microsoft para trabalhar com gráficos bidimensionais.

A biblioteca System.Drawing.Common possui bom desempenho e funciona apenas no Windows.

A partir do .NET Core, a Microsoft tentou criar uma versão multiplataforma da biblioteca System.Drawing.Common. Esperávamos poder usar essa versão multiplataforma em algum momento e, assim, oferecer suporte multiplataforma no VintaSoft Imaging .NET SDK.

Infelizmente, no início de 2022, a Microsoft anunciou que estava encerrando seus esforços para criar uma versão multiplataforma da biblioteca System.Drawing.Common. Eles anunciaram que a biblioteca System.Drawing.Common agora é exclusiva do Windows e sugeriram que todos os desenvolvedores usem bibliotecas de terceiros para trabalhar com gráficos bidimensionais. Mais detalhes podem ser encontrados no artigo "System.Drawing.Common suportado apenas no Windows".

Assim que percebemos que não poderíamos usar a biblioteca System.Drawing.Common para criar uma versão multiplataforma do SDK, começamos nossos próprios testes com bibliotecas gráficas 2D de terceiros. E logo nossos testes mostraram que a biblioteca SkiaSharp do Google era uma opção bastante rápida e profissional para trabalhar com gráficos bidimensionais.

Revisamos completamente todos os algoritmos de trabalho com gráficos 2D e, finalmente, o SDK passou a desenhar gráficos 2D usando o mecanismo de desenho (classe Vintasoft.Imaging.Drawing.DrawingEngine) e parou de usar a biblioteca System.Drawing.Common diretamente.

Na versão 12.0, criamos dois mecanismos de desenho para Windows, Linux e macOS.

O primeiro é um mecanismo de desenho multiplataforma baseado na biblioteca SkiaSharp para Windows, Linux e macOS. Este mecanismo de desenho está localizado no assembly Vintasoft.Imaging.Drawing.Skia.dll.

O segundo é um mecanismo de desenho baseado em System.Drawing.Common, exclusivo para Windows. Este mecanismo de desenho está localizado no assembly Vintasoft.Imaging.Gdi.dll.

O SDK não exige o uso de um mecanismo de desenho se ele não funcionar com gráficos 2D e/ou não desenhar texto. Por exemplo, o SDK não exige um mecanismo de desenho para carregar uma imagem raster (TIFF, PNG, JPEG, DICOM etc.) de um arquivo ou para obter metadados da imagem.

O SDK exige o uso de um mecanismo de desenho se ele funcionar com gráficos 2D e/ou desenhar texto. Por exemplo, o SDK exige um mecanismo de desenho para renderizar páginas PDF, DOCX e XLSX e para rotação ou redimensionamento de imagens.

Em geral, é necessário selecionar e conectar um mecanismo de desenho ao SDK, o que é muito fácil de fazer. Se você for criar um aplicativo exclusivo para Windows, adicione uma referência ao assembly Vintasoft.Imaging.Gdi.dll ao seu aplicativo. Se você for criar um aplicativo para Windows, Linux e macOS, adicione uma referência ao assembly Vintasoft.Imaging.Drawing.Skia.dll e ao pacote NuGet SkiaSharp 2.88.0 ao seu aplicativo.

Nossos testes funcionais, de regressão e técnicos mostraram que o SDK funciona da mesma forma no .NET 6 no Windows 10, Ubuntu Desktop 20.04.3 e macOS 12 "Monterey".



A segunda e mais importante novidade desta versão é a capacidade de renderização vetorial de documentos PDF, DOCX e XLSX no visualizador de imagens da web.
Anteriormente, o visualizador de imagens da web renderizava blocos separados da página para cada nível de zoom. Agora, o visualizador de imagens da web renderiza a página do documento como conteúdo SVG de uma só vez e, em seguida, redimensiona o conteúdo vetorial SVG renderizado quando necessário para exibir o documento em um novo nível de zoom.O uso de renderização vetorial aumentou significativamente a velocidade de exibição de documentos no navegador e também reduziu consideravelmente a carga do servidor web (agora o servidor renderiza a página apenas uma vez, enquanto antes era necessário renderizar os blocos da página várias vezes).

A renderização vetorial no visualizador de imagens web pode ser ativada/desativada usando a função Vintasoft.Imaging.UI.WebImageViewerJS.set_UseVectorRendering.
Aqui está uma captura de tela do aplicativo de demonstração "VintaSoft Web Document Viewer Demo", que mostra as configurações do visualizador de imagens da web com renderização vetorial ativada:
VintaSoft Imaging .NET SDK 12.0: Web Image Viewer Settings

Você pode testar rapidamente o funcionamento da renderização vetorial no visualizador de imagens da web usando o aplicativo de demonstração "VintaSoft ASP.NET Core Document Viewer Demo": https://demos.vintasoft.com/AspNetCoreDocumentViewerDemo/


Mais informações sobre a versão 12.0 do VintaSoft Imaging .NET SDK podem ser encontradas aqui: https://www.vintasoft.com/pt/vsimaging-dotnet-history.html