mirror of
https://github.com/storytold/photocraft.git
synced 2026-10-26 19:07:06 -06:00
* Deep EXR: write the flattened pixel by layout, not a fixed RGBA quadruple Grayscale deep files (Y + A + Z) flattened wrong: the tail of the composite loop wrote a fixed [R, G, B, A] quadruple, so a GrayA image's alpha slot received an un-premultiplied luminance copy (alpha 1.0 for a 0.5-alpha file) while the real alpha fell past the end of the row. The values are now written by layout: RGB(A), gray(+A), gray - with the alpha in the slot it belongs to. * Deep EXR flatten: no per-pixel Vec allocation Build a fixed [f32; 4] plus a length instead; this runs once per pixel. 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>