Skip to content

v0.2.2

Choose a tag to compare

@lilith lilith released this 31 Mar 08:34
· 109 commits to main since this release

⚠️ Pixel output will change

CMS color conversions now use tetrahedral interpolation for 3D CLUT transforms instead of trilinear. This is more accurate — errors vs lcms2 drop from ≤14 to ≤2 — but if you have tests locked to exact pixel values through an ICC profile transform, they will produce different results.

What changed

  • InterpolationMethod::Tetrahedral — the headliner. Better 3D CLUT interpolation for LUT-based ICC profiles (e.g. AdobeRGB, ProPhoto, CMYK). Accuracy improvement with no measurable performance cost.
  • lut_transform_opts() is now public — use it to get the canonical moxcms settings (allow_use_cicp_transfer: false, BarycentricWeightScale::High, InterpolationMethod::Tetrahedral) without duplicating the rationale.
  • cicp_transform_opts() — same quality settings as lut_transform_opts with allow_use_cicp_transfer: true for CICP-native source formats (JXL, HEIF).