CharLS.Native .NET is an adapter assembly that provides access to the native CharLS JPEG-LS C++ implementation for .NET based applications.
JPEG-LS (ISO-14495-1) is a lossless/near-lossless compression standard for continuous-tone images.
Remark: a pure C# implemenation is provided with the CharLS .NET project.
CharLS.Native can be added to your C# project using the dotnet command line or the NuGet Package Manager in Visual Studio.
dotnet add package CharLS.Native
The NuGet package comes with prebuilt CharLS DLLs for the x86, x64 and ARM64 targets. The Microsoft Visual C++ 2015-2022 Redistributable (v14.42 or newer) needs to be installed on the target system.
A prebuild CharLS shared library can be installed using the Apt package manager:
sudo apt install libcharls2
A prebuild CharLS shared library can be installed using the Homebrew package manager:
brew install team-charls/tap/charls
A sample application is included in the GitHub repository that demonstrates how to convert common image types like .bmp, .png and .jpg to .jls (JPEG-LS).
git clone --recurse-submodules
dotnet build && dotnet test && dotnet publish
to build the nuget package.Building the NuGet package with signed Windows DLLs can only be done on the Window platform with Visual Studio 2022 or with Build tools for Visual Studio 2022.
To support code signing with a code signing certificate, stored on a smart card, a Windows command file is available: create-signed-nuget-package.cmd
.
Instructions:
create-signed-nuget-package.cmd certificate-thumb-print time-stamp-url
All DLLs and the NuGet package itself will be signed.
More information about JPEG-LS can be found in the README from the C++ CharLS project. This repository also contains instructions how the build the native C++ CharLS shared library from source.