pdfcraft/crates
Krzysztof Cieślik bde9dc52fe
honour the /Lab colour space /WhitePoint (#1203) (#1237)
* fix: recognize paragraph drafts as unsaved work (Issue #811)

* fix(color): honour the /Lab colour space /WhitePoint (#1203)

The old path fed every Lab value to the bundled ICC transform as if the
space's white point were D50, so a /Lab space with any other /WhitePoint
(e.g. D65 [0.9505 1 1.089]) rendered off by several levels per channel
and a D65 blue came out 45 levels too red.

Map L*a*b* to XYZ in the space's own white coordinates (ISO 32000-2
§8.6.5.4), Bradford-adapt it to D65 and convert to sRGB directly, as
Poppler does. Missing or degenerate white points fall back to a flat
white and hostile components are clamped without panicking.

Add a render regression that checks the five reported flat patches of
the D65 white-point fixture against their CIE sRGB values.

* Lab: map normalised Indexed palette components onto L*/Range; drop unused LAB.icc

An /Indexed palette over Lab passes its entries as byte/255 (manual_scale),
which the new Lab conversion read as raw L*a*b* and drew near black. Map
them onto L* 0..100 and the a*/b* /Range, with a regression test. Record the
patch as hayro-interpret (25) in vendor/README.md, and remove LAB.icc (no
longer referenced) with its ATTRIBUTION, NOTICE and assets README entries.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Main gates: rustfmt tests/viewer.rs; a type alias for the refresh-steps array (clippy type_complexity)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Brandon Thomas <echelon@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 02:08:21 -04:00
..
a11y Move sibling structure tags in reading order (#1229) 2026-10-12 01:33:55 -04:00
annot M14: text the fonts can't draw is kept and reported, never written as ? silently (#1112) 2026-10-11 17:53:55 -04:00
audit Add faux-redaction audit (paint-order and colour-aware, fail-closed) (#110) 2026-10-11 14:32:33 -04:00
automation M7: transform private image crops across nested states and streams (#1269) 2026-10-12 01:38:32 -04:00
compare Rename PrintCraft to PdfCraft (#174) 2026-10-07 16:03:57 -04:00
content Fix #155: edit text across content stream pieces (#628) 2026-10-09 17:57:02 -04:00
cos M2: bound the total size of page-label prefixes (#1146) 2026-10-11 18:38:48 -04:00
create M14: text the fonts can't draw is kept and reported, never written as ? silently (#1112) 2026-10-11 17:53:55 -04:00
crypt Issue #1185: Protect refuses passwords that encryption would make empty or equal (#1186) 2026-10-11 18:30:00 -04:00
edit M7: transform private image crops across nested states and streams (#1269) 2026-10-12 01:38:32 -04:00
engine honour the /Lab colour space /WhitePoint (#1203) (#1237) 2026-10-12 02:08:21 -04:00
export M10: Presentation (.pptx) export (#1137) (#1162) 2026-10-11 21:55:25 -04:00
filters Rename PrintCraft to PdfCraft (#174) 2026-10-07 16:03:57 -04:00
fonts Preserve source fonts in text editing and resize clipped artwork (#1116) 2026-10-11 20:27:55 -04:00
forms XFA: import and export data files, and pictures for image fields (#1175) 2026-10-11 18:29:35 -04:00
geom M10: Enhance camera image finds the document's edges; rotate, crop or organize after Enhance page (part 3 of #1008) (#1027) 2026-10-11 12:31:23 -04:00
js M12: XFA script time limits start when the engine is ready (#1081) 2026-10-11 11:58:28 -04:00
measure Issue #432: global Units preference (mm, cm, in, pt), defaulting to the system region (#463) 2026-10-11 15:33:54 -04:00
model M2: pages with /UserUnit are shown at their size in points, as in Acrobat (#722) 2026-10-10 06:19:31 -04:00
ocr M14: text the fonts can't draw is kept and reported, never written as ? silently (#1112) 2026-10-11 17:53:55 -04:00
optimize M11: strip redundant ASCII stream wrappers during optimization (#989) 2026-10-11 13:21:20 -04:00
organize M4: rename colliding form field names when combining (organize.field-name-conflicts) (#1155) 2026-10-11 21:18:21 -04:00
platform fix(theme): complete Linux System appearance tracking (#1017) 2026-10-11 15:23:49 -04:00
preflight i18n: let the layers below hand their sentences over, so they can be translated (#478) 2026-10-11 15:45:51 -04:00
print M10.5: load driver options for CUPS printer instances (#1226) 2026-10-12 01:33:29 -04:00
redact M14: text the fonts can't draw is kept and reported, never written as ? silently (#1112) 2026-10-11 17:53:55 -04:00
render honour the /Lab colour space /WhitePoint (#1203) (#1237) 2026-10-12 02:08:21 -04:00
sign M14: text the fonts can't draw is kept and reported, never written as ? silently (#1112) 2026-10-11 17:53:55 -04:00
ui-egui honour the /Lab colour space /WhitePoint (#1203) (#1237) 2026-10-12 02:08:21 -04:00
xfa XFA: import and export data files, and pictures for image fields (#1175) 2026-10-11 18:29:35 -04:00
xfdf M5: preserve comment identities during partial XFDF and FDF imports (#1144) 2026-10-11 18:32:03 -04:00