photocraft/crates
Brandon Thomas 685aca7769 feat(compose): Lab documents evaluate Invert, Posterize, Threshold, Brightness/Contrast and Gradient Map on L, a, b
In Lab documents Photoshop evaluates these adjustments on the Lab channels,
not on the screen RGB colour:

- Invert and Posterize act on L, a and b alike (normalised L/100,
  (a+128)/255, (b+128)/255; Invert is n -> 1 - n).
- Brightness/Contrast (modern and legacy) applies its tone curve to L only;
  a and b are unchanged.
- Threshold splits on L alone and outputs neutral black or white.
- Gradient Map is driven by L (Reverse uses 1 - L).

Adjustment layers (CPU compositor) and destructive Image > Adjustments both
go through the new `adjust::apply_in`; the GPU compositor defers these
adjustments to the CPU in Lab documents. Levels and Curves keep their Lab
records; other adjustments stay on the screen colour.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 05:02:05 -04:00
..
affinity AF.3: recognize current Affinity artboard properties (#2355) 2026-10-10 13:14:59 -04:00
algo Content-Aware tools: faster, cancellable at once, same pixels (P21, P22, P49) (#3395) 2026-10-12 00:11:10 -04:00
automation test(automation): six rounding-out acceptance tasks (31-36) (#3568) 2026-10-12 04:03:30 -04:00
cms wasm: gate native-only constants so wasm32 builds without dead-code warnings (#2808) (#2813) 2026-10-10 17:48:19 -04:00
codecs Animated GIF: every frame loads into video layers (#572) (#2999) 2026-10-12 01:26:37 -04:00
color fix(blend): keep 32-bit Hue/Saturation/Color/Luminosity above 1 (#1735) 2026-10-10 13:15:18 -04:00
compose feat(compose): Lab documents evaluate Invert, Posterize, Threshold, Brightness/Contrast and Gradient Map on L, a, b 2026-10-12 05:02:05 -04:00
doc feat(ui): Photoshop's New Guide: units and colour (#3553) 2026-10-12 00:46:56 -04:00
engine feat(compose): Lab documents evaluate Invert, Posterize, Threshold, Brightness/Contrast and Gradient Map on L, a, b 2026-10-12 05:02:05 -04:00
format Format: index ZIP entries by name and use crc32fast (#3474) (#3488) 2026-10-12 02:42:40 -04:00
geom Warp presets: Photoshop's Bezier control grids instead of approximations (#3444) 2026-10-11 23:56:17 -04:00
gpu feat(compose): Lab documents evaluate Invert, Posterize, Threshold, Brightness/Contrast and Gradient Map on L, a, b 2026-10-12 05:02:05 -04:00
heif Open HEIC/HEIF photos (#355) (#372) 2026-10-07 10:20:40 -04:00
io PSD: alpha channel resources count the merged transparency, 13-byte DisplayInfo (#3577) 2026-10-12 04:22:10 -04:00
ops History: count retained tiles incrementally below the byte budget (#1157) 2026-10-09 00:48:31 -04:00
paint Brush: draw the smoothing string from the brush to the pointer while drawing (#3479) (#3526) 2026-10-12 00:26:04 -04:00
plugins Plug-ins: keep the originating error across parallel bands (#1654) 2026-10-09 09:11:00 -04:00
psd psd: harden the standalone binary parsers (fuzz + property tests, gradient/swatch correctness) (#3542) 2026-10-12 02:49:08 -04:00
raster perf: Edit > Clear works tile by tile on large selections (#3463) (#3482) 2026-10-11 23:29:25 -04:00
raw Raw: open monochrome LinearRaw DNGs (1 sample per pixel) (#3497) (#3503) 2026-10-11 23:33:40 -04:00
tablet Pen tablets: Xwayland for a pen on Wayland, macOS monitor after NSApp (#639, #759) (#1070) 2026-10-09 05:08:44 +07:00
testkit Tests: one GPU harness at a time in every GPU test binary (WARP crash) (#3212) 2026-10-11 19:27:26 -04:00
text Use Fontconfig for Linux font discovery (#2330) (#2961) 2026-10-12 01:05:56 -04:00
ui-egui Menus: keep clear of the taskbar when Wayland hides the window position (#3737) (#3739) 2026-10-12 04:33:54 -04:00
vector Transform: Distort, Perspective and Warp keep shape layers live (#3009) (#3025) 2026-10-11 16:16:04 -04:00