TinyEXR.NET
0.1.1
See the version list below for details.
dotnet add package TinyEXR.NET --version 0.1.1
NuGet\Install-Package TinyEXR.NET -Version 0.1.1
<PackageReference Include="TinyEXR.NET" Version="0.1.1" />
paket add TinyEXR.NET --version 0.1.1
#r "nuget: TinyEXR.NET, 0.1.1"
// Install TinyEXR.NET as a Cake Addin #addin nuget:?package=TinyEXR.NET&version=0.1.1 // Install TinyEXR.NET as a Cake Tool #tool nuget:?package=TinyEXR.NET&version=0.1.1
TinyEXR.NET
TinyEXR.NET
is a C# wrapper of single header-only C++ library tinyexr
tinyexr
is a portable single header-only C++ library to load and save OpenEXR (.exr) images
The target framework of TinyEXR.NET
is .NET Standard 2.1
The goal of this library is easy to use. Therefore, API is very simple (not flexible).
Download
TinyEXR.NET
can be found on NuGet (← click it !)
Supported Platforms
Key:
- ✅: completed
- 🚧: work in progress
- ⌛: planned, not yet started
- ❌: no plan
Platform | State |
---|---|
Windows x64 | 🚧 |
Linux x64 | ⌛ |
Unlisted platforms are also unplanned.
But you can contribute to support any other platform! 😃
Usage
Load from file
ResultType loadResult = OpenExr.Load(@"D:\hello.exr", out float[] rgba, out var w, out var h);
rgba
format is: float x RGBA x width x hight
Save to file
float[] rgb = new float[w * h * 3];
ResultType saveResult = OpenExr.Save(rgb, w, h, 3, false, @"D:\hello.exr");
image
image format is: float x width x height
, or float x RGB(A) x width x hight
components
must be 1(Grayscale), 3(RGB) or 4(RGBA).
Get Layers
ResultType r = OpenExr.GetLayers(@"D:\hello.exr", out string[] layers);
I can't find an image with layers...I don't know if this function works...It may cause bugs 😃
Development build
Windows
0. Requirements
- MSVC that supported C++11 (recommend VS2019 or higher)
- Powershell (>= 3.0)
- CMake (>= 3.0.0)
- .NET SDK x64 (>= .NET Core 3.0)
1. Download the code
First, clone this project or download the latest release and unzip.
2. Build native library
Run build_win-x64.ps1
3. Finish
Finally, we can find NuGet package in TinyEXR.NET\bin\Release
. You can use it anywhere
Details
Although tinyexr provides C interface, the MSVC compiler does not export any symbols by default.
So we have to create a C++ project in the folder native
to wrap tinyexr API.
I don't know if there is any better way. But it works. 😃
The reason why we only support x64 platform is that I don't know whether the existing code will work properly if we support x86 or other platforms. Specifically, Is the struct layout at C++ side consistent with C# side? I don't have time to solve this problem at present. So I just give up these platform.
Contribution is welcome!
License
TinyEXR.NET
is under MIT license
and wrapped C++ lib tinyexr
is under 3-clause BSD
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- No dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on TinyEXR.NET:
Package | Downloads |
---|---|
ValveResourceFormat
Library to decompile Valve Source 2 files |
|
UAI_ONNX
ONNX Runner built for C# projects that target .Net8.0 or later. This library is built on top of the ONNX Runtime C# API and provides a simple way to load and run ONNX models in C#. |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on TinyEXR.NET:
Repository | Stars |
---|---|
ValveResourceFormat/ValveResourceFormat
🔬 Valve's Source 2 resource file format parser, decompiler, and exporter.
|
Version | Downloads | Last updated |
---|---|---|
0.3.8 | 637 | 9/17/2024 |
0.3.7 | 511 | 8/4/2024 |
0.3.6 | 811 | 2/23/2024 |
0.3.5 | 364 | 8/7/2023 |
0.3.4 | 303 | 7/9/2023 |
0.3.3 | 180 | 6/6/2023 |
0.3.2 | 442 | 4/19/2023 |
0.3.1 | 222 | 4/4/2023 |
0.2.3 | 570 | 8/19/2022 |
0.2.2 | 400 | 8/16/2022 |
0.2.1 | 418 | 8/15/2022 |
0.2.0 | 406 | 8/14/2022 |
0.1.1 | 414 | 7/24/2022 |
0.1.0 | 422 | 7/15/2022 |
0.0.2-alpha.2 | 124 | 7/14/2022 |
0.0.2-alpha.1 | 109 | 7/14/2022 |
New API: GetLayers