MxPlot.Extensions.Tiff 0.0.3-alpha

This is a prerelease version of MxPlot.Extensions.Tiff.
dotnet add package MxPlot.Extensions.Tiff --version 0.0.3-alpha
                    
NuGet\Install-Package MxPlot.Extensions.Tiff -Version 0.0.3-alpha
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MxPlot.Extensions.Tiff" Version="0.0.3-alpha" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MxPlot.Extensions.Tiff" Version="0.0.3-alpha" />
                    
Directory.Packages.props
<PackageReference Include="MxPlot.Extensions.Tiff" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MxPlot.Extensions.Tiff --version 0.0.3-alpha
                    
#r "nuget: MxPlot.Extensions.Tiff, 0.0.3-alpha"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package MxPlot.Extensions.Tiff@0.0.3-alpha
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MxPlot.Extensions.Tiff&version=0.0.3-alpha&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=MxPlot.Extensions.Tiff&version=0.0.3-alpha&prerelease
                    
Install as a Cake Tool

MxPlot.Extensions.Tiff

OME-TIFF and ImageJ-compatible hyperstack I/O support for MxPlot

NuGet .NET License

MxPlot.Extensions.TIFF provides advanced TIFF read/write capabilities for MatrixData<T>. It is designed to handle 5D bio-imaging data (XY + Channel, Z, Time) with full metadata preservation, bridging MxPlot with the scientific imaging ecosystem (ImageJ/Fiji, Bio-Formats).

Features

  • 5D Hyperstack Support: Natively handles multidimensional data (Channel, Z-Slice, Time-Frame).
  • Dual Export Strategies:
    • OME-TIFF: Embeds OME-XML metadata (physical pixel size, time intervals, UUIDs) for robust data exchange.
    • ImageJ TIFF: Writes ImageJ-specific tags for immediate, lightweight drag-and-drop compatibility with Fiji.
  • Physical Space Awareness: Preserves physical units (e.g., µm) and automatically handles coordinate system conversion (Bottom-Left vs Top-Left).
  • Flexible Architecture: Implements MxPlot's IMatrixDataWriter / IMatrixDataReader interfaces.

Components

Based on the internal file structure:

  • OmeTiffFormat: The core writer strategy for generating OME-compliant TIFFs.
  • ImageJTiffFormat: The writer strategy optimized for ImageJ compatibility.
  • OmeTiffHandler / ImageJTiffHandler: High-level I/O handlers.
  • ImageJMetadata: Helper class for managing ImageJ specific TIFF tags.

Quick Usage

This library integrates with the MatrixData.Save method via the Strategy Pattern.

Saving Data

using MxPlot.Core;
using MxPlot.Extensions.Tiff;

// Assume 'matrix' is a MatrixData<float> with 5D dimensions (e.g., C=3, Z=24, T=100)
// and physical scaling (e.g., 0.1um/pixel).

// 1. Save as OME-TIFF (Recommended for archival/analysis)
// Preserves full physical metadata and dimension order.
matrix.Save("simulation_data.ome.tif", new OmeTiffFormat());

// 2. Save as ImageJ Hyperstack (Recommended for quick viewing)
// Lightweight format specifically tuned for Fiji.
matrix.Save("quick_view.tif", new ImageJTiffFormat());

// 3. Save with custom options (e.g., disable Y-flip)
var options = new OmeTiffFormat.Options
{
	FlipY = false // Keep original coordinate system
};
matrix.Save("no_flip.ome.tif", new OmeTiffFormat(options));

Loading Data

// Automatically detects OME-TIFF or Standard TIFF and restores axes information.
IMatrixData loadedData = MatrixData.Load("input.ome.tif");

Technical Notes

  • Supported Types: byte, sbyte, short, ushort, int, float, double.
  • Coordinates: The library automatically handles the vertical flip (Y-axis) required to map MxPlot's mathematical Cartesian coordinates to the raster scan order of TIFF images. This behavior can be customized via the FlipY option if needed. See the API documentation for OmeTiffFormat and ImageJTiffFormat for details.
  • Dependencies: Built on top of BitMiracle.LibTiff.NET.

License MIT License

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on MxPlot.Extensions.Tiff:

Package Downloads
MxPlot

MxPlot: Multi-Axis Matrix Visualization Library for .NET. This project is currently under active development.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.0.3-alpha 29 2/11/2026